Merge vulkancts/vulkan-cts-1.0.2 into vulkancts/vulkan-cts-1.0.2-extensions

Change-Id: I1c6f35fd8f03e2bd4d72a99b6d062d08703985ff
diff --git a/Android.mk b/Android.mk
index 253f085..ea13fd3 100644
--- a/Android.mk
+++ b/Android.mk
@@ -749,6 +749,8 @@
 	external/vulkancts/modules/vulkan/draw/vktDrawIndexedTest.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawIndirectTest.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawInstancedTests.cpp \
+	external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.cpp \
+	external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawSimpleTest.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp \
 	external/vulkancts/modules/vulkan/dynamic_state/vktDynamicStateBaseClass.cpp \
diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt
index e020cf9..c718db7 100644
--- a/android/cts/master/vk-master.txt
+++ b/android/cts/master/vk-master.txt
@@ -1307,6 +1307,2219 @@
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x10_srgb_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_unorm_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.get_physical_device_properties2.features
+dEQP-VK.api.info.get_physical_device_properties2.properties
+dEQP-VK.api.info.get_physical_device_properties2.format_properties
+dEQP-VK.api.info.get_physical_device_properties2.queue_family_properties
+dEQP-VK.api.info.get_physical_device_properties2.memory_properties
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.1d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.d16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.2d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.d16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.3d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.d16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_12x12_srgb_block
 dEQP-VK.api.device_init.create_instance_name_version
 dEQP-VK.api.device_init.create_instance_invalid_api_version
 dEQP-VK.api.device_init.create_instance_null_appinfo
@@ -1315,6 +3528,7 @@
 dEQP-VK.api.device_init.create_multiple_devices
 dEQP-VK.api.device_init.create_device_unsupported_extensions
 dEQP-VK.api.device_init.create_device_various_queue_counts
+dEQP-VK.api.device_init.create_device_features2
 dEQP-VK.api.object_management.single.instance
 dEQP-VK.api.object_management.single.device
 dEQP-VK.api.object_management.single.device_memory_small
@@ -3348,6 +5562,8 @@
 dEQP-VK.api.command_buffers.execute_small_primary
 dEQP-VK.api.command_buffers.execute_large_primary
 dEQP-VK.api.command_buffers.reset_implicit
+dEQP-VK.api.command_buffers.trim_command_pool
+dEQP-VK.api.command_buffers.trim_command_pool_secondary
 dEQP-VK.api.command_buffers.record_single_primary
 dEQP-VK.api.command_buffers.record_many_primary
 dEQP-VK.api.command_buffers.record_single_secondary
@@ -6101,6 +8317,12 @@
 dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d16_unorm_s8_uint_d16_unorm_s8_uint
 dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d24_unorm_s8_uint_d24_unorm_s8_uint
 dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d32_sfloat_s8_uint_d32_sfloat_s8_uint
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_by_slices
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_by_layers
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_whole
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_whole
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_regions
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_regions
 dEQP-VK.api.copy_and_blit.image_to_buffer.whole
 dEQP-VK.api.copy_and_blit.image_to_buffer.buffer_offset
 dEQP-VK.api.copy_and_blit.image_to_buffer.regions
@@ -16711,6 +18933,7 @@
 dEQP-VK.api.fill_and_update_buffer.update_buffer_second_part
 dEQP-VK.api.descriptor_pool.repeated_reset_short
 dEQP-VK.api.descriptor_pool.repeated_reset_long
+dEQP-VK.api.descriptor_pool.out_of_pool_memory
 dEQP-VK.api.null_handle.destroy_buffer
 dEQP-VK.api.null_handle.destroy_buffer_view
 dEQP-VK.api.null_handle.destroy_command_pool
@@ -88818,6 +91041,10 @@
 dEQP-VK.pipeline.render_to_image.2d_array.22x64_4.r32_uint
 dEQP-VK.pipeline.render_to_image.2d_array.22x64_4.r16g16_sint
 dEQP-VK.pipeline.render_to_image.2d_array.22x64_4.r32g32b32a32_sfloat
+dEQP-VK.pipeline.render_to_image.3d.22x64x7.r8g8b8a8_unorm
+dEQP-VK.pipeline.render_to_image.3d.22x64x7.r32_uint
+dEQP-VK.pipeline.render_to_image.3d.22x64x7.r16g16_sint
+dEQP-VK.pipeline.render_to_image.3d.22x64x7.r32g32b32a32_sfloat
 dEQP-VK.pipeline.render_to_image.cube.35x35_6.r8g8b8a8_unorm
 dEQP-VK.pipeline.render_to_image.cube.35x35_6.r32_uint
 dEQP-VK.pipeline.render_to_image.cube.35x35_6.r16g16_sint
@@ -119612,6 +121839,28 @@
 dEQP-VK.draw.instanced.draw_indexed_vk_primitive_topology_triangle_fan
 dEQP-VK.draw.instanced.draw_indirect_vk_primitive_topology_triangle_fan
 dEQP-VK.draw.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan
+dEQP-VK.draw.shader_draw_parameters.base_vertex.draw
+dEQP-VK.draw.shader_draw_parameters.base_vertex.draw_indexed
+dEQP-VK.draw.shader_draw_parameters.base_vertex.draw_indirect
+dEQP-VK.draw.shader_draw_parameters.base_vertex.draw_indexed_indirect
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indexed
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indirect
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indirect_first_instance
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indexed_indirect
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indexed_indirect_first_instance
+dEQP-VK.draw.shader_draw_parameters.draw_index.draw
+dEQP-VK.draw.shader_draw_parameters.draw_index.draw_instanced
+dEQP-VK.draw.shader_draw_parameters.draw_index.draw_indexed
+dEQP-VK.draw.shader_draw_parameters.draw_index.draw_indexed_instanced
+dEQP-VK.draw.negative_viewport_height.front_ccw_cull_none
+dEQP-VK.draw.negative_viewport_height.front_ccw_cull_front
+dEQP-VK.draw.negative_viewport_height.front_ccw_cull_back
+dEQP-VK.draw.negative_viewport_height.front_ccw_cull_both
+dEQP-VK.draw.negative_viewport_height.front_cw_cull_none
+dEQP-VK.draw.negative_viewport_height.front_cw_cull_front
+dEQP-VK.draw.negative_viewport_height.front_cw_cull_back
+dEQP-VK.draw.negative_viewport_height.front_cw_cull_both
 dEQP-VK.compute.basic.empty_shader
 dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation
 dEQP-VK.compute.basic.ubo_to_ssbo_single_group
@@ -137536,6 +139785,13 @@
 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.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.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/external/vulkancts/data/vulkan/draw/VertexFetchShaderDrawParameters.vert b/external/vulkancts/data/vulkan/draw/VertexFetchShaderDrawParameters.vert
new file mode 100644
index 0000000..0be6bda
--- /dev/null
+++ b/external/vulkancts/data/vulkan/draw/VertexFetchShaderDrawParameters.vert
@@ -0,0 +1,26 @@
+#version 450 core
+#extension GL_ARB_shader_draw_parameters : require
+
+layout(location = 0) in vec4 in_position;
+layout(location = 1) in vec4 in_color;
+layout(location = 2) in int  in_refVertexIndex;
+
+layout(location = 0) out vec4 out_color;
+
+out gl_PerVertex {
+    vec4 gl_Position;
+};
+
+void main() {
+    vec2 perVertex         = vec2(in_position.x, in_position.y);
+    vec2 perInstance[5]    = vec2[5](vec2(0.0, 0.0), vec2(-0.3, 0.0), vec2(0.0, 0.3), vec2(0.5, 0.5), vec2(0.75, -0.8));
+    vec4 colors[4]         = vec4[4](vec4(1.0), vec4(0.0, 0.0, 1.0, 1.0), vec4(0.0, 1.0, 0.0, 1.0), vec4(0.0, 1.0, 1.0, 1.0));
+    int  baseInstanceIndex = gl_InstanceIndex - gl_BaseInstanceARB;
+
+    gl_Position = vec4(perVertex + perInstance[baseInstanceIndex], 0.0, 1.0);
+
+    if ((gl_VertexIndex - gl_BaseVertexARB) == in_refVertexIndex && gl_DrawIDARB == 0)
+        out_color = in_color * colors[baseInstanceIndex];
+    else
+        out_color = vec4(1.0, 0.0, 0.0, 1.0);
+}
diff --git a/external/vulkancts/data/vulkan/draw/VertexFetchShaderDrawParametersDrawIndex.vert b/external/vulkancts/data/vulkan/draw/VertexFetchShaderDrawParametersDrawIndex.vert
new file mode 100644
index 0000000..596287c
--- /dev/null
+++ b/external/vulkancts/data/vulkan/draw/VertexFetchShaderDrawParametersDrawIndex.vert
@@ -0,0 +1,26 @@
+#version 450 core
+#extension GL_ARB_shader_draw_parameters : require
+
+layout(location = 0) in vec4 in_position;
+layout(location = 1) in vec4 in_color;
+layout(location = 2) in int  in_refVertexIndex;
+
+layout(location = 0) out vec4 out_color;
+
+out gl_PerVertex {
+    vec4 gl_Position;
+};
+
+void main() {
+    vec2 perVertex      = vec2(in_position.x, in_position.y);
+    vec2 perInstance[5] = vec2[5](vec2(0.0, 0.0), vec2(-0.3, 0.0), vec2(0.0, 0.3), vec2(0.5, 0.5), vec2(0.75, -0.8));
+    vec2 perDraw[4]     = vec2[4](vec2(0.0, 0.0), vec2(-0.3, -0.3), vec2(0.3, 0.3), vec2(1.0, 0.5));
+    vec4 colors[4]      = vec4[4](vec4(1.0), vec4(0.0, 0.0, 1.0, 1.0), vec4(0.0, 1.0, 0.0, 1.0), vec4(0.0, 1.0, 1.0, 1.0));
+
+    gl_Position = vec4(perVertex + perInstance[gl_InstanceIndex - gl_BaseInstanceARB] + perDraw[gl_DrawIDARB], 0.0, 1.0);
+
+    if ((gl_VertexIndex - gl_BaseVertexARB) == in_refVertexIndex)
+        out_color = in_color * colors[gl_DrawIDARB];
+    else
+        out_color = vec4(1.0, 0.0, 0.0, 1.0);
+}
diff --git a/external/vulkancts/framework/vulkan/vkBasicTypes.inl b/external/vulkancts/framework/vulkan/vkBasicTypes.inl
index 2a67b62..a1e8b44 100644
--- a/external/vulkancts/framework/vulkan/vkBasicTypes.inl
+++ b/external/vulkancts/framework/vulkan/vkBasicTypes.inl
@@ -82,6 +82,7 @@
 	VK_ERROR_INCOMPATIBLE_DISPLAY_KHR	= -1000003001,
 	VK_ERROR_VALIDATION_FAILED_EXT		= -1000011001,
 	VK_ERROR_INVALID_SHADER_NV			= -1000012000,
+	VK_ERROR_OUT_OF_POOL_MEMORY_KHR		= -1000069000,
 };
 
 enum VkStructureType
@@ -159,6 +160,15 @@
 	VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV					= 1000057000,
 	VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV					= 1000057001,
 	VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV				= 1000058000,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR						= 1000059000,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR						= 1000059001,
+	VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR								= 1000059002,
+	VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR							= 1000059003,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR				= 1000059004,
+	VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR							= 1000059005,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR				= 1000059006,
+	VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR					= 1000059007,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR		= 1000059008,
 	VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT									= 1000061000,
 	VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX							= 1000086000,
 	VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX				= 1000086001,
@@ -831,6 +841,8 @@
 	VK_FORMAT_FEATURE_BLIT_DST_BIT							= 0x00000800,
 	VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT		= 0x00001000,
 	VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG	= 0x00002000,
+	VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR					= 0x00004000,
+	VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR					= 0x00008000,
 };
 typedef deUint32 VkFormatFeatureFlags;
 
@@ -849,11 +861,12 @@
 
 enum VkImageCreateFlagBits
 {
-	VK_IMAGE_CREATE_SPARSE_BINDING_BIT		= 0x00000001,
-	VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT	= 0x00000002,
-	VK_IMAGE_CREATE_SPARSE_ALIASED_BIT		= 0x00000004,
-	VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT		= 0x00000008,
-	VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT		= 0x00000010,
+	VK_IMAGE_CREATE_SPARSE_BINDING_BIT			= 0x00000001,
+	VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT		= 0x00000002,
+	VK_IMAGE_CREATE_SPARSE_ALIASED_BIT			= 0x00000004,
+	VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT			= 0x00000008,
+	VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT			= 0x00000010,
+	VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR	= 0x00000020,
 };
 typedef deUint32 VkImageCreateFlags;
 
@@ -1262,6 +1275,8 @@
 
 typedef deUint32 VkWin32SurfaceCreateFlagsKHR;
 
+typedef deUint32 VkCommandPoolTrimFlagsKHR;
+
 VK_DEFINE_PLATFORM_TYPE(XlibDisplayPtr,				void*);
 VK_DEFINE_PLATFORM_TYPE(XlibWindow,					deUintptr);
 VK_DEFINE_PLATFORM_TYPE(XlibVisualID,				deUint32);
diff --git a/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl b/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
index e692fa7..4e37982 100644
--- a/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
@@ -127,6 +127,7 @@
 virtual VkResult	acquireNextImageKHR								(VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const;
 virtual VkResult	queuePresentKHR									(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const;
 virtual VkResult	createSharedSwapchainsKHR						(VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const;
+virtual void		trimCommandPoolKHR								(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const;
 virtual VkResult	debugMarkerSetObjectTagEXT						(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo) const;
 virtual VkResult	debugMarkerSetObjectNameEXT						(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo) const;
 virtual void		cmdDebugMarkerBeginEXT							(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
diff --git a/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl b/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
index 8b51df2..a4e8a08 100644
--- a/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
@@ -37,6 +37,13 @@
 virtual VkResult			createAndroidSurfaceKHR								(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
 virtual VkResult			createWin32SurfaceKHR								(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
 virtual VkBool32			getPhysicalDeviceWin32PresentationSupportKHR		(VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex) const;
+virtual void				getPhysicalDeviceFeatures2KHR						(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures) const;
+virtual void				getPhysicalDeviceProperties2KHR						(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties) const;
+virtual void				getPhysicalDeviceFormatProperties2KHR				(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties) const;
+virtual VkResult			getPhysicalDeviceImageFormatProperties2KHR			(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties) const;
+virtual void				getPhysicalDeviceQueueFamilyProperties2KHR			(VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties) const;
+virtual void				getPhysicalDeviceMemoryProperties2KHR				(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) const;
+virtual void				getPhysicalDeviceSparseImageFormatProperties2KHR	(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties) const;
 virtual VkResult			createDebugReportCallbackEXT						(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const;
 virtual void				destroyDebugReportCallbackEXT						(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const;
 virtual void				debugReportMessageEXT								(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const;
diff --git a/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl b/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
index 911590e..ed7bb99 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
@@ -632,6 +632,11 @@
 	return m_vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
 }
 
+void DeviceDriver::trimCommandPoolKHR (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const
+{
+	m_vk.trimCommandPoolKHR(device, commandPool, flags);
+}
+
 VkResult DeviceDriver::debugMarkerSetObjectTagEXT (VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo) const
 {
 	return m_vk.debugMarkerSetObjectTagEXT(device, pTagInfo);
diff --git a/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
index f42dcf3..49685d9 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
@@ -127,6 +127,7 @@
 AcquireNextImageKHRFunc								acquireNextImageKHR;
 QueuePresentKHRFunc									queuePresentKHR;
 CreateSharedSwapchainsKHRFunc						createSharedSwapchainsKHR;
+TrimCommandPoolKHRFunc								trimCommandPoolKHR;
 DebugMarkerSetObjectTagEXTFunc						debugMarkerSetObjectTagEXT;
 DebugMarkerSetObjectNameEXTFunc						debugMarkerSetObjectNameEXT;
 CmdDebugMarkerBeginEXTFunc							cmdDebugMarkerBeginEXT;
diff --git a/external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl b/external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
index d3909d1..7ec64ff 100644
--- a/external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
+++ b/external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
@@ -167,6 +167,14 @@
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateAndroidSurfaceKHRFunc)							(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateWin32SurfaceKHRFunc)								(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
 typedef VKAPI_ATTR VkBool32				(VKAPI_CALL* GetPhysicalDeviceWin32PresentationSupportKHRFunc)		(VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex);
+typedef VKAPI_ATTR void					(VKAPI_CALL* GetPhysicalDeviceFeatures2KHRFunc)						(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
+typedef VKAPI_ATTR void					(VKAPI_CALL* GetPhysicalDeviceProperties2KHRFunc)					(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
+typedef VKAPI_ATTR void					(VKAPI_CALL* GetPhysicalDeviceFormatProperties2KHRFunc)				(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetPhysicalDeviceImageFormatProperties2KHRFunc)		(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties);
+typedef VKAPI_ATTR void					(VKAPI_CALL* GetPhysicalDeviceQueueFamilyProperties2KHRFunc)		(VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
+typedef VKAPI_ATTR void					(VKAPI_CALL* GetPhysicalDeviceMemoryProperties2KHRFunc)				(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
+typedef VKAPI_ATTR void					(VKAPI_CALL* GetPhysicalDeviceSparseImageFormatProperties2KHRFunc)	(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
+typedef VKAPI_ATTR void					(VKAPI_CALL* TrimCommandPoolKHRFunc)								(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateDebugReportCallbackEXTFunc)						(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
 typedef VKAPI_ATTR void					(VKAPI_CALL* DestroyDebugReportCallbackEXTFunc)						(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void					(VKAPI_CALL* DebugReportMessageEXTFunc)								(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage);
diff --git a/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
index 87e1d83..2c0ff8e 100644
--- a/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
@@ -127,6 +127,7 @@
 m_vk.acquireNextImageKHR								= (AcquireNextImageKHRFunc)								GET_PROC_ADDR("vkAcquireNextImageKHR");
 m_vk.queuePresentKHR									= (QueuePresentKHRFunc)									GET_PROC_ADDR("vkQueuePresentKHR");
 m_vk.createSharedSwapchainsKHR							= (CreateSharedSwapchainsKHRFunc)						GET_PROC_ADDR("vkCreateSharedSwapchainsKHR");
+m_vk.trimCommandPoolKHR									= (TrimCommandPoolKHRFunc)								GET_PROC_ADDR("vkTrimCommandPoolKHR");
 m_vk.debugMarkerSetObjectTagEXT							= (DebugMarkerSetObjectTagEXTFunc)						GET_PROC_ADDR("vkDebugMarkerSetObjectTagEXT");
 m_vk.debugMarkerSetObjectNameEXT						= (DebugMarkerSetObjectNameEXTFunc)						GET_PROC_ADDR("vkDebugMarkerSetObjectNameEXT");
 m_vk.cmdDebugMarkerBeginEXT								= (CmdDebugMarkerBeginEXTFunc)							GET_PROC_ADDR("vkCmdDebugMarkerBeginEXT");
diff --git a/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
index b744aeb..10ab1ae 100644
--- a/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
@@ -37,6 +37,13 @@
 m_vk.createAndroidSurfaceKHR							= (CreateAndroidSurfaceKHRFunc)								GET_PROC_ADDR("vkCreateAndroidSurfaceKHR");
 m_vk.createWin32SurfaceKHR								= (CreateWin32SurfaceKHRFunc)								GET_PROC_ADDR("vkCreateWin32SurfaceKHR");
 m_vk.getPhysicalDeviceWin32PresentationSupportKHR		= (GetPhysicalDeviceWin32PresentationSupportKHRFunc)		GET_PROC_ADDR("vkGetPhysicalDeviceWin32PresentationSupportKHR");
+m_vk.getPhysicalDeviceFeatures2KHR						= (GetPhysicalDeviceFeatures2KHRFunc)						GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2KHR");
+m_vk.getPhysicalDeviceProperties2KHR					= (GetPhysicalDeviceProperties2KHRFunc)						GET_PROC_ADDR("vkGetPhysicalDeviceProperties2KHR");
+m_vk.getPhysicalDeviceFormatProperties2KHR				= (GetPhysicalDeviceFormatProperties2KHRFunc)				GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2KHR");
+m_vk.getPhysicalDeviceImageFormatProperties2KHR			= (GetPhysicalDeviceImageFormatProperties2KHRFunc)			GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2KHR");
+m_vk.getPhysicalDeviceQueueFamilyProperties2KHR			= (GetPhysicalDeviceQueueFamilyProperties2KHRFunc)			GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
+m_vk.getPhysicalDeviceMemoryProperties2KHR				= (GetPhysicalDeviceMemoryProperties2KHRFunc)				GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2KHR");
+m_vk.getPhysicalDeviceSparseImageFormatProperties2KHR	= (GetPhysicalDeviceSparseImageFormatProperties2KHRFunc)	GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
 m_vk.createDebugReportCallbackEXT						= (CreateDebugReportCallbackEXTFunc)						GET_PROC_ADDR("vkCreateDebugReportCallbackEXT");
 m_vk.destroyDebugReportCallbackEXT						= (DestroyDebugReportCallbackEXTFunc)						GET_PROC_ADDR("vkDestroyDebugReportCallbackEXT");
 m_vk.debugReportMessageEXT								= (DebugReportMessageEXTFunc)								GET_PROC_ADDR("vkDebugReportMessageEXT");
diff --git a/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl b/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
index 764a2d6..fb3d713 100644
--- a/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
@@ -182,6 +182,41 @@
 	return m_vk.getPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
 }
 
+void InstanceDriver::getPhysicalDeviceFeatures2KHR (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures) const
+{
+	m_vk.getPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
+}
+
+void InstanceDriver::getPhysicalDeviceProperties2KHR (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties) const
+{
+	m_vk.getPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
+}
+
+void InstanceDriver::getPhysicalDeviceFormatProperties2KHR (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties) const
+{
+	m_vk.getPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
+}
+
+VkResult InstanceDriver::getPhysicalDeviceImageFormatProperties2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties) const
+{
+	return m_vk.getPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties);
+}
+
+void InstanceDriver::getPhysicalDeviceQueueFamilyProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties) const
+{
+	m_vk.getPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
+}
+
+void InstanceDriver::getPhysicalDeviceMemoryProperties2KHR (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) const
+{
+	m_vk.getPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
+}
+
+void InstanceDriver::getPhysicalDeviceSparseImageFormatProperties2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties) const
+{
+	m_vk.getPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
+}
+
 VkResult InstanceDriver::createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const
 {
 	return m_vk.createDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
diff --git a/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
index 4ae3bd3..148b83f 100644
--- a/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
@@ -37,6 +37,13 @@
 CreateAndroidSurfaceKHRFunc								createAndroidSurfaceKHR;
 CreateWin32SurfaceKHRFunc								createWin32SurfaceKHR;
 GetPhysicalDeviceWin32PresentationSupportKHRFunc		getPhysicalDeviceWin32PresentationSupportKHR;
+GetPhysicalDeviceFeatures2KHRFunc						getPhysicalDeviceFeatures2KHR;
+GetPhysicalDeviceProperties2KHRFunc						getPhysicalDeviceProperties2KHR;
+GetPhysicalDeviceFormatProperties2KHRFunc				getPhysicalDeviceFormatProperties2KHR;
+GetPhysicalDeviceImageFormatProperties2KHRFunc			getPhysicalDeviceImageFormatProperties2KHR;
+GetPhysicalDeviceQueueFamilyProperties2KHRFunc			getPhysicalDeviceQueueFamilyProperties2KHR;
+GetPhysicalDeviceMemoryProperties2KHRFunc				getPhysicalDeviceMemoryProperties2KHR;
+GetPhysicalDeviceSparseImageFormatProperties2KHRFunc	getPhysicalDeviceSparseImageFormatProperties2KHR;
 CreateDebugReportCallbackEXTFunc						createDebugReportCallbackEXT;
 DestroyDebugReportCallbackEXTFunc						destroyDebugReportCallbackEXT;
 DebugReportMessageEXTFunc								debugReportMessageEXT;
diff --git a/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl b/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
index f5e22d6..ff3d2aa 100644
--- a/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
@@ -1128,6 +1128,61 @@
 	return VK_SUCCESS;
 }
 
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceFeatures2KHR (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures)
+{
+	DE_UNREF(physicalDevice);
+	DE_UNREF(pFeatures);
+}
+
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceProperties2KHR (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties)
+{
+	DE_UNREF(physicalDevice);
+	DE_UNREF(pProperties);
+}
+
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceFormatProperties2KHR (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties)
+{
+	DE_UNREF(physicalDevice);
+	DE_UNREF(format);
+	DE_UNREF(pFormatProperties);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceImageFormatProperties2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties)
+{
+	DE_UNREF(physicalDevice);
+	DE_UNREF(pImageFormatInfo);
+	DE_UNREF(pImageFormatProperties);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceQueueFamilyProperties2KHR (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties)
+{
+	DE_UNREF(physicalDevice);
+	DE_UNREF(pQueueFamilyPropertyCount);
+	DE_UNREF(pQueueFamilyProperties);
+}
+
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceMemoryProperties2KHR (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties)
+{
+	DE_UNREF(physicalDevice);
+	DE_UNREF(pMemoryProperties);
+}
+
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceSparseImageFormatProperties2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties)
+{
+	DE_UNREF(physicalDevice);
+	DE_UNREF(pFormatInfo);
+	DE_UNREF(pPropertyCount);
+	DE_UNREF(pProperties);
+}
+
+VKAPI_ATTR void VKAPI_CALL trimCommandPoolKHR (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags)
+{
+	DE_UNREF(device);
+	DE_UNREF(commandPool);
+	DE_UNREF(flags);
+}
+
 VKAPI_ATTR void VKAPI_CALL debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage)
 {
 	DE_UNREF(instance);
@@ -1300,6 +1355,13 @@
 	VK_NULL_FUNC_ENTRY(vkCreateAndroidSurfaceKHR,							createAndroidSurfaceKHR),
 	VK_NULL_FUNC_ENTRY(vkCreateWin32SurfaceKHR,								createWin32SurfaceKHR),
 	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWin32PresentationSupportKHR,		getPhysicalDeviceWin32PresentationSupportKHR),
+	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2KHR,						getPhysicalDeviceFeatures2KHR),
+	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2KHR,					getPhysicalDeviceProperties2KHR),
+	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2KHR,				getPhysicalDeviceFormatProperties2KHR),
+	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2KHR,		getPhysicalDeviceImageFormatProperties2KHR),
+	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2KHR,		getPhysicalDeviceQueueFamilyProperties2KHR),
+	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2KHR,				getPhysicalDeviceMemoryProperties2KHR),
+	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2KHR,	getPhysicalDeviceSparseImageFormatProperties2KHR),
 	VK_NULL_FUNC_ENTRY(vkCreateDebugReportCallbackEXT,						createDebugReportCallbackEXT),
 	VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT,						destroyDebugReportCallbackEXT),
 	VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT,								debugReportMessageEXT),
@@ -1434,6 +1496,7 @@
 	VK_NULL_FUNC_ENTRY(vkAcquireNextImageKHR,								acquireNextImageKHR),
 	VK_NULL_FUNC_ENTRY(vkQueuePresentKHR,									queuePresentKHR),
 	VK_NULL_FUNC_ENTRY(vkCreateSharedSwapchainsKHR,							createSharedSwapchainsKHR),
+	VK_NULL_FUNC_ENTRY(vkTrimCommandPoolKHR,								trimCommandPoolKHR),
 	VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectTagEXT,						debugMarkerSetObjectTagEXT),
 	VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectNameEXT,						debugMarkerSetObjectNameEXT),
 	VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerBeginEXT,							cmdDebugMarkerBeginEXT),
diff --git a/external/vulkancts/framework/vulkan/vkStrUtil.inl b/external/vulkancts/framework/vulkan/vkStrUtil.inl
index c721ade..4c69aca 100644
--- a/external/vulkancts/framework/vulkan/vkStrUtil.inl
+++ b/external/vulkancts/framework/vulkan/vkStrUtil.inl
@@ -208,6 +208,7 @@
 tcu::Format::Bitfield<32>	getMirSurfaceCreateFlagsKHRStr				(VkMirSurfaceCreateFlagsKHR value);
 tcu::Format::Bitfield<32>	getAndroidSurfaceCreateFlagsKHRStr			(VkAndroidSurfaceCreateFlagsKHR value);
 tcu::Format::Bitfield<32>	getWin32SurfaceCreateFlagsKHRStr			(VkWin32SurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>	getCommandPoolTrimFlagsKHRStr				(VkCommandPoolTrimFlagsKHR value);
 
 std::ostream&	operator<<	(std::ostream& s, const VkApplicationInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkInstanceCreateInfo& value);
@@ -334,6 +335,15 @@
 std::ostream&	operator<<	(std::ostream& s, const VkMirSurfaceCreateInfoKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFeatures2KHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceProperties2KHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkFormatProperties2KHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkImageFormatProperties2KHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceImageFormatInfo2KHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkQueueFamilyProperties2KHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMemoryProperties2KHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkSparseImageFormatProperties2KHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2KHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value);
diff --git a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
index 216c708..13a2c43 100644
--- a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
@@ -91,6 +91,7 @@
 		case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:	return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
 		case VK_ERROR_VALIDATION_FAILED_EXT:	return "VK_ERROR_VALIDATION_FAILED_EXT";
 		case VK_ERROR_INVALID_SHADER_NV:		return "VK_ERROR_INVALID_SHADER_NV";
+		case VK_ERROR_OUT_OF_POOL_MEMORY_KHR:	return "VK_ERROR_OUT_OF_POOL_MEMORY_KHR";
 		default:								return DE_NULL;
 	}
 }
@@ -172,6 +173,15 @@
 		case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:						return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
 		case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:						return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
 		case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:				return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR:							return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR";
+		case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR:									return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR";
+		case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR:							return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR";
+		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR:							return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR";
+		case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR:					return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR";
 		case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:									return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
 		case VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX:							return "VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX";
 		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX:				return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX";
@@ -934,6 +944,8 @@
 		tcu::Format::BitDesc(VK_FORMAT_FEATURE_BLIT_DST_BIT,						"VK_FORMAT_FEATURE_BLIT_DST_BIT"),
 		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,		"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
 		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,	"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"),
+		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,				"VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR"),
+		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,				"VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -958,11 +970,12 @@
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
-		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,	"VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,	"VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,	"VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,	"VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,	"VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_BINDING_BIT,			"VK_IMAGE_CREATE_SPARSE_BINDING_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,			"VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,			"VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,			"VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,			"VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,	"VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -1588,6 +1601,11 @@
 	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
+tcu::Format::Bitfield<32> getCommandPoolTrimFlagsKHRStr (VkCommandPoolTrimFlagsKHR value)
+{
+	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+}
+
 std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
 {
 	s << "VkApplicationInfo = {\n";
@@ -3325,6 +3343,104 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2KHR& value)
+{
+	s << "VkPhysicalDeviceFeatures2KHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tfeatures = " << value.features << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2KHR& value)
+{
+	s << "VkPhysicalDeviceProperties2KHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tproperties = " << value.properties << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkFormatProperties2KHR& value)
+{
+	s << "VkFormatProperties2KHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tformatProperties = " << value.formatProperties << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2KHR& value)
+{
+	s << "VkImageFormatProperties2KHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2KHR& value)
+{
+	s << "VkPhysicalDeviceImageFormatInfo2KHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tformat = " << value.format << '\n';
+	s << "\ttype = " << value.type << '\n';
+	s << "\ttiling = " << value.tiling << '\n';
+	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
+	s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2KHR& value)
+{
+	s << "VkQueueFamilyProperties2KHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2KHR& value)
+{
+	s << "VkPhysicalDeviceMemoryProperties2KHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tmemoryProperties = " << value.memoryProperties << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2KHR& value)
+{
+	s << "VkSparseImageFormatProperties2KHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tproperties = " << value.properties << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2KHR& value)
+{
+	s << "VkPhysicalDeviceSparseImageFormatInfo2KHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tformat = " << value.format << '\n';
+	s << "\ttype = " << value.type << '\n';
+	s << "\tsamples = " << value.samples << '\n';
+	s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
+	s << "\ttiling = " << value.tiling << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
 {
 	s << "VkDebugReportCallbackCreateInfoEXT = {\n";
diff --git a/external/vulkancts/framework/vulkan/vkStructTypes.inl b/external/vulkancts/framework/vulkan/vkStructTypes.inl
index 006ee99..d5c0e23 100644
--- a/external/vulkancts/framework/vulkan/vkStructTypes.inl
+++ b/external/vulkancts/framework/vulkan/vkStructTypes.inl
@@ -1363,6 +1363,77 @@
 	pt::Win32WindowHandle			hwnd;
 };
 
+struct VkPhysicalDeviceFeatures2KHR
+{
+	VkStructureType				sType;
+	void*						pNext;
+	VkPhysicalDeviceFeatures	features;
+};
+
+struct VkPhysicalDeviceProperties2KHR
+{
+	VkStructureType				sType;
+	void*						pNext;
+	VkPhysicalDeviceProperties	properties;
+};
+
+struct VkFormatProperties2KHR
+{
+	VkStructureType		sType;
+	void*				pNext;
+	VkFormatProperties	formatProperties;
+};
+
+struct VkImageFormatProperties2KHR
+{
+	VkStructureType			sType;
+	void*					pNext;
+	VkImageFormatProperties	imageFormatProperties;
+};
+
+struct VkPhysicalDeviceImageFormatInfo2KHR
+{
+	VkStructureType		sType;
+	const void*			pNext;
+	VkFormat			format;
+	VkImageType			type;
+	VkImageTiling		tiling;
+	VkImageUsageFlags	usage;
+	VkImageCreateFlags	flags;
+};
+
+struct VkQueueFamilyProperties2KHR
+{
+	VkStructureType			sType;
+	void*					pNext;
+	VkQueueFamilyProperties	queueFamilyProperties;
+};
+
+struct VkPhysicalDeviceMemoryProperties2KHR
+{
+	VkStructureType						sType;
+	void*								pNext;
+	VkPhysicalDeviceMemoryProperties	memoryProperties;
+};
+
+struct VkSparseImageFormatProperties2KHR
+{
+	VkStructureType					sType;
+	void*							pNext;
+	VkSparseImageFormatProperties	properties;
+};
+
+struct VkPhysicalDeviceSparseImageFormatInfo2KHR
+{
+	VkStructureType			sType;
+	const void*				pNext;
+	VkFormat				format;
+	VkImageType				type;
+	VkSampleCountFlagBits	samples;
+	VkImageUsageFlags		usage;
+	VkImageTiling			tiling;
+};
+
 struct VkDebugReportCallbackCreateInfoEXT
 {
 	VkStructureType					sType;
diff --git a/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl b/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
index 2e1cbb7..a4edc30 100644
--- a/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
@@ -127,6 +127,7 @@
 virtual VkResult	acquireNextImageKHR								(VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const = 0;
 virtual VkResult	queuePresentKHR									(VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const = 0;
 virtual VkResult	createSharedSwapchainsKHR						(VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const = 0;
+virtual void		trimCommandPoolKHR								(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const = 0;
 virtual VkResult	debugMarkerSetObjectTagEXT						(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo) const = 0;
 virtual VkResult	debugMarkerSetObjectNameEXT						(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo) const = 0;
 virtual void		cmdDebugMarkerBeginEXT							(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
diff --git a/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl b/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
index 692ea7a..1793be0 100644
--- a/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
@@ -37,6 +37,13 @@
 virtual VkResult			createAndroidSurfaceKHR								(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
 virtual VkResult			createWin32SurfaceKHR								(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
 virtual VkBool32			getPhysicalDeviceWin32PresentationSupportKHR		(VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex) const = 0;
+virtual void				getPhysicalDeviceFeatures2KHR						(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures) const = 0;
+virtual void				getPhysicalDeviceProperties2KHR						(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties) const = 0;
+virtual void				getPhysicalDeviceFormatProperties2KHR				(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties) const = 0;
+virtual VkResult			getPhysicalDeviceImageFormatProperties2KHR			(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties) const = 0;
+virtual void				getPhysicalDeviceQueueFamilyProperties2KHR			(VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties) const = 0;
+virtual void				getPhysicalDeviceMemoryProperties2KHR				(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) const = 0;
+virtual void				getPhysicalDeviceSparseImageFormatProperties2KHR	(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties) const = 0;
 virtual VkResult			createDebugReportCallbackEXT						(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const = 0;
 virtual void				destroyDebugReportCallbackEXT						(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual void				debugReportMessageEXT								(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const = 0;
diff --git a/external/vulkancts/modules/vulkan/api/vktApiCommandBuffersTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiCommandBuffersTests.cpp
index 09f0983..8440c90 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiCommandBuffersTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiCommandBuffersTests.cpp
@@ -1186,6 +1186,220 @@
 		return tcu::TestStatus::fail("Buffer was not reset correctly.");
 }
 
+using  de::SharedPtr;
+typedef SharedPtr<Unique<VkEvent> >			VkEventShared;
+
+template<typename T>
+inline SharedPtr<Unique<T> > makeSharedPtr (Move<T> move)
+{
+	return SharedPtr<Unique<T> >(new Unique<T>(move));
+}
+
+bool submitAndCheck (Context& context, std::vector<VkCommandBuffer>& cmdBuffers, std::vector <VkEventShared>& events)
+{
+	const VkDevice							vkDevice	= context.getDevice();
+	const DeviceInterface&					vk			= context.getDeviceInterface();
+	const VkQueue							queue		= context.getUniversalQueue();
+
+	const VkFenceCreateInfo				fenceCreateInfo	=
+	{
+		VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,		// sType;
+		DE_NULL,									// pNext;
+		0u,											// flags
+	};
+	const Unique<VkFence>				fence			(createFence(vk, vkDevice, &fenceCreateInfo));
+
+	const VkSubmitInfo					submitInfo		=
+	{
+		VK_STRUCTURE_TYPE_SUBMIT_INFO,				// sType
+		DE_NULL,									// pNext
+		0u,											// waitSemaphoreCount
+		DE_NULL,									// pWaitSemaphores
+		(const VkPipelineStageFlags*)DE_NULL,		// pWaitDstStageMask
+		static_cast<deUint32>(cmdBuffers.size()),	// commandBufferCount
+		&cmdBuffers[0],								// pCommandBuffers
+		0u,											// signalSemaphoreCount
+		DE_NULL,									// pSignalSemaphores
+	};
+
+	VK_CHECK(vk.queueSubmit(queue, 1u, &submitInfo, fence.get()));
+	VK_CHECK(vk.waitForFences(vkDevice, 1u, &fence.get(), 0u, INFINITE_TIMEOUT));
+
+	for(int eventNdx = 0; eventNdx < static_cast<int>(events.size()); ++eventNdx)
+	{
+		if (vk.getEventStatus(vkDevice, **events[eventNdx]) != VK_EVENT_SET)
+			return false;
+		vk.resetEvent(vkDevice, **events[eventNdx]);
+	}
+
+	return true;
+}
+
+void createCommadBuffers (const DeviceInterface&		vk,
+						  const VkDevice				vkDevice,
+						  deUint32						bufferCount,
+						  VkCommandPool					pool,
+						  const VkCommandBufferLevel	cmdBufferLevel,
+						  VkCommandBuffer*				pCommandBuffers)
+{
+	const VkCommandBufferAllocateInfo		cmdBufParams	=
+	{
+		VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,	//	VkStructureType				sType;
+		DE_NULL,										//	const void*					pNext;
+		pool,											//	VkCommandPool				pool;
+		cmdBufferLevel,									//	VkCommandBufferLevel		level;
+		bufferCount,									//	uint32_t					bufferCount;
+	};
+	VK_CHECK(vk.allocateCommandBuffers(vkDevice, &cmdBufParams, pCommandBuffers));
+}
+
+void addCommandsToBuffer (const DeviceInterface& vk, std::vector<VkCommandBuffer>& cmdBuffers, std::vector <VkEventShared>& events)
+{
+	const VkCommandBufferInheritanceInfo	secCmdBufInheritInfo	=
+	{
+		VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
+		DE_NULL,
+		(VkRenderPass)0u,								// renderPass
+		0u,												// subpass
+		(VkFramebuffer)0u,								// framebuffer
+		VK_FALSE,										// occlusionQueryEnable
+		(VkQueryControlFlags)0u,						// queryFlags
+		(VkQueryPipelineStatisticFlags)0u,				// pipelineStatistics
+	};
+
+	const VkCommandBufferBeginInfo		cmdBufBeginInfo	=
+	{
+		VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,	// sType
+		DE_NULL,										// pNext
+		0u,												// flags
+		&secCmdBufInheritInfo,							// pInheritanceInfo;
+	};
+
+	for(int bufferNdx = 0; bufferNdx < static_cast<int>(cmdBuffers.size()); ++bufferNdx)
+	{
+		VK_CHECK(vk.beginCommandBuffer(cmdBuffers[bufferNdx], &cmdBufBeginInfo));
+		vk.cmdSetEvent(cmdBuffers[bufferNdx], **events[bufferNdx % events.size()], VK_PIPELINE_STAGE_ALL_COMMANDS_BIT);
+		VK_CHECK(vk.endCommandBuffer(cmdBuffers[bufferNdx]));
+	}
+}
+
+bool executeSecondaryCmdBuffer (Context&						context,
+								VkCommandPool					pool,
+								std::vector<VkCommandBuffer>&	cmdBuffersSecondary,
+								std::vector <VkEventShared>&	events)
+{
+	const VkDevice					vkDevice		= context.getDevice();
+	const DeviceInterface&			vk				= context.getDeviceInterface();
+	std::vector<VkCommandBuffer>	cmdBuffer		(1);
+	const VkCommandBufferBeginInfo	cmdBufBeginInfo	=
+	{
+		VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,	// sType
+		DE_NULL,										// pNext
+		0u,												// flags
+		(const VkCommandBufferInheritanceInfo*)DE_NULL,	// pInheritanceInfo;
+	};
+
+	createCommadBuffers(vk, vkDevice, 1u, pool, VK_COMMAND_BUFFER_LEVEL_PRIMARY, &cmdBuffer[0]);
+	VK_CHECK(vk.beginCommandBuffer(cmdBuffer[0], &cmdBufBeginInfo));
+	vk.cmdExecuteCommands(cmdBuffer[0], static_cast<deUint32>(cmdBuffersSecondary.size()), &cmdBuffersSecondary[0]);
+	VK_CHECK(vk.endCommandBuffer(cmdBuffer[0]));
+
+	bool returnValue = submitAndCheck(context, cmdBuffer, events);
+	vk.freeCommandBuffers(vkDevice, pool, 1u, &cmdBuffer[0]);
+	return returnValue;
+}
+
+tcu::TestStatus trimCommandPoolTest (Context& context, const VkCommandBufferLevel cmdBufferLevel)
+{
+	if (!de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_KHR_maintenance1"))
+		TCU_THROW(NotSupportedError, "Extension VK_KHR_maintenance1 not supported");
+
+	const VkDevice							vkDevice				= context.getDevice();
+	const DeviceInterface&					vk						= context.getDeviceInterface();
+	const deUint32							queueFamilyIndex		= context.getUniversalQueueFamilyIndex();
+
+	//test parameters
+	const deUint32							cmdBufferIterationCount	= 300u;
+	const deUint32							cmdBufferCount			= 10u;
+
+	const VkCommandPoolCreateInfo			cmdPoolParams			=
+	{
+		VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,					// sType;
+		DE_NULL,													// pNext;
+		VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,			// flags;
+		queueFamilyIndex,											// queueFamilyIndex;
+	};
+	const Unique<VkCommandPool>				cmdPool					(createCommandPool(vk, vkDevice, &cmdPoolParams));
+
+	const VkEventCreateInfo					eventCreateInfo			=
+	{
+		VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,						// sType;
+		DE_NULL,													// pNext;
+		0u,															// flags;
+	};
+
+	std::vector <VkEventShared>				events;
+	for (deUint32 ndx = 0u; ndx < cmdBufferCount; ++ndx)
+		events.push_back(makeSharedPtr(createEvent(vk, vkDevice, &eventCreateInfo)));
+
+	{
+		std::vector<VkCommandBuffer> cmdBuffers(cmdBufferCount);
+		createCommadBuffers(vk, vkDevice, cmdBufferCount, *cmdPool, cmdBufferLevel, &cmdBuffers[0]);
+
+		for (deUint32 cmdBufferIterationrNdx = 0; cmdBufferIterationrNdx < cmdBufferIterationCount; ++cmdBufferIterationrNdx)
+		{
+			addCommandsToBuffer(vk, cmdBuffers, events);
+
+			//Peak, situation when we use a lot more command buffers
+			if (cmdBufferIterationrNdx % 10u == 0)
+			{
+				std::vector<VkCommandBuffer> cmdBuffersPeak(cmdBufferCount * 10u);
+				createCommadBuffers(vk, vkDevice, static_cast<deUint32>(cmdBuffersPeak.size()), *cmdPool, cmdBufferLevel, &cmdBuffersPeak[0]);
+				addCommandsToBuffer(vk, cmdBuffersPeak, events);
+
+				switch(cmdBufferLevel)
+				{
+					case VK_COMMAND_BUFFER_LEVEL_PRIMARY:
+						if (!submitAndCheck(context, cmdBuffersPeak, events))
+							return tcu::TestStatus::fail("Fail");
+						break;
+					case VK_COMMAND_BUFFER_LEVEL_SECONDARY:
+						if (!executeSecondaryCmdBuffer(context, *cmdPool, cmdBuffersPeak, events))
+							return tcu::TestStatus::fail("Fail");
+						break;
+					default:
+						DE_ASSERT(0);
+				}
+				vk.freeCommandBuffers(vkDevice, *cmdPool, static_cast<deUint32>(cmdBuffersPeak.size()), &cmdBuffersPeak[0]);
+			}
+
+			vk.trimCommandPoolKHR(vkDevice, *cmdPool, (VkCommandPoolTrimFlagsKHR)0);
+
+			switch(cmdBufferLevel)
+			{
+				case VK_COMMAND_BUFFER_LEVEL_PRIMARY:
+					if (!submitAndCheck(context, cmdBuffers, events))
+						return tcu::TestStatus::fail("Fail");
+					break;
+				case VK_COMMAND_BUFFER_LEVEL_SECONDARY:
+					if (!executeSecondaryCmdBuffer(context, *cmdPool, cmdBuffers, events))
+						return tcu::TestStatus::fail("Fail");
+					break;
+				default:
+					DE_ASSERT(0);
+			}
+
+			for (deUint32 bufferNdx = cmdBufferIterationrNdx % 3u; bufferNdx < cmdBufferCount; bufferNdx+=2u)
+			{
+				vk.freeCommandBuffers(vkDevice, *cmdPool, 1u, &cmdBuffers[bufferNdx]);
+				createCommadBuffers(vk, vkDevice, 1u, *cmdPool, cmdBufferLevel, &cmdBuffers[bufferNdx]);
+			}
+		}
+	}
+
+	return tcu::TestStatus::pass("Pass");
+}
+
 /******** 19.3. Command Buffer Recording (5.3 in VK 1.0 Spec) *****************/
 tcu::TestStatus recordSinglePrimaryBufferTest(Context& context)
 {
@@ -4431,6 +4645,8 @@
 	addFunctionCase				(commandBuffersTests.get(), "execute_small_primary",			"",	executePrimaryBufferTest);
 	addFunctionCase				(commandBuffersTests.get(), "execute_large_primary",			"",	executeLargePrimaryBufferTest);
 	addFunctionCase				(commandBuffersTests.get(), "reset_implicit",					"", resetBufferImplicitlyTest);
+	addFunctionCase				(commandBuffersTests.get(), "trim_command_pool",				"", trimCommandPoolTest, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	addFunctionCase				(commandBuffersTests.get(), "trim_command_pool_secondary",		"", trimCommandPoolTest, VK_COMMAND_BUFFER_LEVEL_SECONDARY);
 	/* 19.3. Command Buffer Recording (5.3 in VK 1.0 Spec) */
 	addFunctionCase				(commandBuffersTests.get(), "record_single_primary",			"",	recordSinglePrimaryBufferTest);
 	addFunctionCase				(commandBuffersTests.get(), "record_many_primary",				"", recordLargePrimaryBufferTest);
diff --git a/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
index aa438b9..6a89a1d 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
@@ -26,7 +26,6 @@
 
 #include "deStringUtil.hpp"
 #include "deUniquePtr.hpp"
-#include "deMath.h"
 
 #include "tcuImageCompare.hpp"
 #include "tcuTexture.hpp"
@@ -108,9 +107,9 @@
 
 struct TestParams
 {
-	union
+	union Data
 	{
-		struct
+		struct Buffer
 		{
 			VkDeviceSize	size;
 		} buffer;
@@ -338,7 +337,6 @@
 	const VkQueue				queue				= m_context.getUniversalQueue();
 	const deUint32				queueFamilyIndex	= m_context.getUniversalQueueFamilyIndex();
 	Allocator&					memAlloc			= m_context.getDefaultAllocator();
-
 	Move<VkBuffer>				buffer;
 	const deUint32				bufferSize			= calculateSize(imageAccess);
 	de::MovePtr<Allocation>		bufferAlloc;
@@ -732,17 +730,24 @@
 	const deUint32				queueFamilyIndex	= context.getUniversalQueueFamilyIndex();
 	Allocator&					memAlloc			= context.getDefaultAllocator();
 
+	if ((m_params.dst.image.imageType == VK_IMAGE_TYPE_3D && m_params.src.image.imageType == VK_IMAGE_TYPE_2D) ||
+		(m_params.dst.image.imageType == VK_IMAGE_TYPE_2D && m_params.src.image.imageType == VK_IMAGE_TYPE_3D))
+	{
+		if (std::find(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_KHR_maintenance1") == context.getDeviceExtensions().end())
+			TCU_THROW(NotSupportedError, "Extension VK_KHR_maintenance1 not supported");
+	}
+
 	VkImageFormatProperties properties;
 	if ((context.getInstanceInterface().getPhysicalDeviceImageFormatProperties (context.getPhysicalDevice(),
 																				m_params.src.image.format,
-																				VK_IMAGE_TYPE_2D,
+																				m_params.src.image.imageType,
 																				VK_IMAGE_TILING_OPTIMAL,
 																				VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
 																				0,
 																				&properties) == VK_ERROR_FORMAT_NOT_SUPPORTED) ||
 		(context.getInstanceInterface().getPhysicalDeviceImageFormatProperties (context.getPhysicalDevice(),
 																				m_params.dst.image.format,
-																				VK_IMAGE_TYPE_2D,
+																				m_params.dst.image.imageType,
 																				VK_IMAGE_TILING_OPTIMAL,
 																				VK_IMAGE_USAGE_TRANSFER_DST_BIT,
 																				0,
@@ -758,11 +763,11 @@
 			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType		sType;
 			DE_NULL,								// const void*			pNext;
 			0u,										// VkImageCreateFlags	flags;
-			VK_IMAGE_TYPE_2D,						// VkImageType			imageType;
+			m_params.src.image.imageType,			// VkImageType			imageType;
 			m_params.src.image.format,				// VkFormat				format;
-			m_params.src.image.extent,				// VkExtent3D			extent;
+			getExtent3D(m_params.src.image),		// VkExtent3D			extent;
 			1u,										// deUint32				mipLevels;
-			1u,										// deUint32				arraySize;
+			getArraySize(m_params.src.image),		// deUint32				arraySize;
 			VK_SAMPLE_COUNT_1_BIT,					// deUint32				samples;
 			VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling		tiling;
 			VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
@@ -785,11 +790,11 @@
 			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType		sType;
 			DE_NULL,								// const void*			pNext;
 			0u,										// VkImageCreateFlags	flags;
-			VK_IMAGE_TYPE_2D,						// VkImageType			imageType;
+			m_params.dst.image.imageType,			// VkImageType			imageType;
 			m_params.dst.image.format,				// VkFormat				format;
-			m_params.dst.image.extent,				// VkExtent3D			extent;
+			getExtent3D(m_params.dst.image),		// VkExtent3D			extent;
 			1u,										// deUint32				mipLevels;
-			1u,										// deUint32				arraySize;
+			getArraySize(m_params.dst.image),		// deUint32				arraySize;
 			VK_SAMPLE_COUNT_1_BIT,					// deUint32				samples;
 			VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling		tiling;
 			VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
@@ -811,14 +816,14 @@
 	const tcu::TextureFormat	srcTcuFormat		= mapVkFormat(m_params.src.image.format);
 	const tcu::TextureFormat	dstTcuFormat		= mapVkFormat(m_params.dst.image.format);
 	m_sourceTextureLevel = de::MovePtr<tcu::TextureLevel>(new tcu::TextureLevel(srcTcuFormat,
-																				m_params.src.image.extent.width,
-																				m_params.src.image.extent.height,
-																				m_params.src.image.extent.depth));
+																				(int)m_params.src.image.extent.width,
+																				(int)m_params.src.image.extent.height,
+																				(int)m_params.src.image.extent.depth));
 	generateBuffer(m_sourceTextureLevel->getAccess(), m_params.src.image.extent.width, m_params.src.image.extent.height, m_params.src.image.extent.depth, FILL_MODE_RED);
 	m_destinationTextureLevel = de::MovePtr<tcu::TextureLevel>(new tcu::TextureLevel(dstTcuFormat,
-																					 (int)m_params.dst.image.extent.width,
-																					 (int)m_params.dst.image.extent.height,
-																					 (int)m_params.dst.image.extent.depth));
+																				(int)m_params.dst.image.extent.width,
+																				(int)m_params.dst.image.extent.height,
+																				(int)m_params.dst.image.extent.depth));
 	generateBuffer(m_destinationTextureLevel->getAccess(), m_params.dst.image.extent.width, m_params.dst.image.extent.height, m_params.dst.image.extent.depth, FILL_MODE_GRADIENT);
 	generateExpectedResult();
 
@@ -851,7 +856,7 @@
 				0u,								// deUint32				baseMipLevel;
 				1u,								// deUint32				mipLevels;
 				0u,								// deUint32				baseArraySlice;
-				1u								// deUint32				arraySize;
+				getArraySize(m_params.src.image)// deUint32				arraySize;
 			}
 		},
 		// destination image
@@ -870,7 +875,7 @@
 				0u,								// deUint32				baseMipLevel;
 				1u,								// deUint32				mipLevels;
 				0u,								// deUint32				baseArraySlice;
-				1u								// deUint32				arraySize;
+				getArraySize(m_params.dst.image)// deUint32				arraySize;
 			}
 		},
 	};
@@ -957,9 +962,18 @@
 
 void CopyImageToImage::copyRegionToTextureLevel (tcu::ConstPixelBufferAccess src, tcu::PixelBufferAccess dst, CopyRegion region)
 {
-	const VkOffset3D	srcOffset	= region.imageCopy.srcOffset;
-	const VkOffset3D	dstOffset	= region.imageCopy.dstOffset;
-	const VkExtent3D	extent		= region.imageCopy.extent;
+	VkOffset3D	srcOffset	= region.imageCopy.srcOffset;
+	VkOffset3D	dstOffset	= region.imageCopy.dstOffset;
+	VkExtent3D	extent		= region.imageCopy.extent;
+
+	if (m_params.src.image.imageType == VK_IMAGE_TYPE_3D && m_params.dst.image.imageType == VK_IMAGE_TYPE_2D)
+		dstOffset.z = srcOffset.z;
+	if (m_params.src.image.imageType == VK_IMAGE_TYPE_2D && m_params.dst.image.imageType == VK_IMAGE_TYPE_3D)
+	{
+		srcOffset.z = dstOffset.z;
+		extent.depth = std::max(region.imageCopy.extent.depth, region.imageCopy.srcSubresource.layerCount);
+	}
+
 
 	if (tcu::isCombinedDepthStencilType(src.getFormat().type))
 	{
@@ -1135,23 +1149,9 @@
 	vk.cmdCopyBuffer(*m_cmdBuffer, m_source.get(), m_destination.get(), (deUint32)m_params.regions.size(), &bufferCopies[0]);
 	vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &dstBufferBarrier, 0, (const VkImageMemoryBarrier*)DE_NULL);
 	VK_CHECK(vk.endCommandBuffer(*m_cmdBuffer));
+	submitCommandsAndWait(vk, vkDevice, queue, *m_cmdBuffer);
 
-	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,
-		1u,								// deUint32					commandBufferCount;
-		&m_cmdBuffer.get(),				// const VkCommandBuffer*	pCommandBuffers;
-		0u,								// deUint32					signalSemaphoreCount;
-		DE_NULL							// const VkSemaphore*		pSignalSemaphores;
-	};
 
-	VK_CHECK(vk.resetFences(vkDevice, 1, &m_fence.get()));
-	VK_CHECK(vk.queueSubmit(queue, 1, &submitInfo, *m_fence));
-	VK_CHECK(vk.waitForFences(vkDevice, 1, &m_fence.get(), true, ~(0ull) /* infinity */));
 
 	// Read buffer data
 	de::MovePtr<tcu::TextureLevel>	resultLevel		(new tcu::TextureLevel(mapVkFormat(VK_FORMAT_R32_UINT), dstLevelWidth, 1));
@@ -1224,11 +1224,11 @@
 			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType		sType;
 			DE_NULL,								// const void*			pNext;
 			0u,										// VkImageCreateFlags	flags;
-			VK_IMAGE_TYPE_2D,						// VkImageType			imageType;
+			m_params.src.image.imageType,			// VkImageType			imageType;
 			m_params.src.image.format,				// VkFormat				format;
-			m_params.src.image.extent,				// VkExtent3D			extent;
+			getExtent3D(m_params.src.image),		// VkExtent3D			extent;
 			1u,										// deUint32				mipLevels;
-			1u,										// deUint32				arraySize;
+			getArraySize(m_params.src.image),		// deUint32				arraySize;
 			VK_SAMPLE_COUNT_1_BIT,					// deUint32				samples;
 			VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling		tiling;
 			VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
@@ -1449,11 +1449,11 @@
 			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType		sType;
 			DE_NULL,								// const void*			pNext;
 			0u,										// VkImageCreateFlags	flags;
-			VK_IMAGE_TYPE_2D,						// VkImageType			imageType;
+			m_params.dst.image.imageType,			// VkImageType			imageType;
 			m_params.dst.image.format,				// VkFormat				format;
-			m_params.dst.image.extent,				// VkExtent3D			extent;
+			getExtent3D(m_params.dst.image),		// VkExtent3D			extent;
 			1u,										// deUint32				mipLevels;
-			1u,										// deUint32				arraySize;
+			getArraySize(m_params.dst.image),		// deUint32				arraySize;
 			VK_SAMPLE_COUNT_1_BIT,					// deUint32				samples;
 			VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling		tiling;
 			VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
@@ -1665,11 +1665,11 @@
 			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType		sType;
 			DE_NULL,								// const void*			pNext;
 			0u,										// VkImageCreateFlags	flags;
-			VK_IMAGE_TYPE_2D,						// VkImageType			imageType;
+			m_params.src.image.imageType,			// VkImageType			imageType;
 			m_params.src.image.format,				// VkFormat				format;
-			m_params.src.image.extent,				// VkExtent3D			extent;
+			getExtent3D(m_params.src.image),		// VkExtent3D			extent;
 			1u,										// deUint32				mipLevels;
-			1u,										// deUint32				arraySize;
+			getArraySize(m_params.src.image),		// deUint32				arraySize;
 			VK_SAMPLE_COUNT_1_BIT,					// deUint32				samples;
 			VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling		tiling;
 			VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
@@ -1692,11 +1692,11 @@
 			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType		sType;
 			DE_NULL,								// const void*			pNext;
 			0u,										// VkImageCreateFlags	flags;
-			VK_IMAGE_TYPE_2D,						// VkImageType			imageType;
+			m_params.dst.image.imageType,			// VkImageType			imageType;
 			m_params.dst.image.format,				// VkFormat				format;
-			m_params.dst.image.extent,				// VkExtent3D			extent;
+			getExtent3D(m_params.dst.image),		// VkExtent3D			extent;
 			1u,										// deUint32				mipLevels;
-			1u,										// deUint32				arraySize;
+			getArraySize(m_params.dst.image),		// deUint32				arraySize;
 			VK_SAMPLE_COUNT_1_BIT,					// deUint32				samples;
 			VK_IMAGE_TILING_OPTIMAL,				// VkImageTiling		tiling;
 			VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
@@ -1794,8 +1794,7 @@
 	vk.cmdBlitImage(*m_cmdBuffer, m_source.get(), VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, m_destination.get(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)m_params.regions.size(), &regions[0], m_params.filter);
 	vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &dstImageBarrier);
 	VK_CHECK(vk.endCommandBuffer(*m_cmdBuffer));
-
-	submitCommandsAndWait (vk, vkDevice, queue, *m_cmdBuffer);
+	submitCommandsAndWait(vk, vkDevice, queue, *m_cmdBuffer);
 
 	de::MovePtr<tcu::TextureLevel> resultTextureLevel = readImage(*m_destination, m_params.dst.image);
 
@@ -2313,7 +2312,7 @@
 			VK_IMAGE_LAYOUT_UNDEFINED,												// VkImageLayout			initialLayout;
 		};
 
-		m_multisampledImage				= createImage(vk, vkDevice, &colorImageParams);
+		m_multisampledImage						= createImage(vk, vkDevice, &colorImageParams);
 
 		// Allocate and bind color image memory.
 		m_multisampledImageAlloc		= memAlloc.allocate(getImageMemoryRequirements(vk, vkDevice, *m_multisampledImage), MemoryRequirement::Any);
@@ -2464,6 +2463,7 @@
 		pipelineLayout	= createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
 	}
 
+	// Create upper half triangle.
 	{
 		const tcu::Vec4	a	(-1.0, -1.0, 0.0, 1.0);
 		const tcu::Vec4	b	(1.0, -1.0, 0.0, 1.0);
@@ -2502,7 +2502,7 @@
 	{
 		Move<VkFramebuffer>		framebuffer;
 		Move<VkImageView>		sourceAttachmentView;
-		const VkExtent3D		extent3D = getExtent3D(m_params.src.image);
+		//const VkExtent3D		extent3D = getExtent3D(m_params.src.image); TODO
 
 		// Create color attachment view.
 		{
@@ -2524,20 +2524,20 @@
 		{
 			const VkImageView				attachments[1]		=
 			{
-				*sourceAttachmentView,
+					*sourceAttachmentView,
 			};
 
 			const VkFramebufferCreateInfo	framebufferParams	=
 			{
-				VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,	// VkStructureType				sType;
-				DE_NULL,									// const void*					pNext;
-				0u,											// VkFramebufferCreateFlags		flags;
-				*renderPass,								// VkRenderPass					renderPass;
-				1u,											// deUint32						attachmentCount;
-				attachments,								// const VkImageView*			pAttachments;
-				extent3D.width,								// deUint32						width;
-				extent3D.height,							// deUint32						height;
-				1u											// deUint32						layers;
+					VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,			// VkStructureType				sType;
+					DE_NULL,											// const void*					pNext;
+					0u,													// VkFramebufferCreateFlags		flags;
+					*renderPass,										// VkRenderPass					renderPass;
+					1u,													// deUint32						attachmentCount;
+					attachments,										// const VkImageView*			pAttachments;
+					m_params.src.image.extent.width,					// deUint32						width;
+					m_params.src.image.extent.height,					// deUint32						height;
+					1u													// deUint32						layers;
 			};
 
 			framebuffer	= createFramebuffer(vk, vkDevice, &framebufferParams);
@@ -2569,9 +2569,9 @@
 
 			const VkVertexInputBindingDescription			vertexInputBindingDescription		=
 			{
-				0u,									// deUint32				binding;
-				sizeof(tcu::Vec4),					// deUint32				stride;
-				VK_VERTEX_INPUT_RATE_VERTEX			// VkVertexInputRate	inputRate;
+					0u,									// deUint32				binding;
+					sizeof(tcu::Vec4),					// deUint32				stride;
+					VK_VERTEX_INPUT_RATE_VERTEX			// VkVertexInputRate	inputRate;
 			};
 
 			const VkVertexInputAttributeDescription			vertexInputAttributeDescriptions[1]	=
@@ -2586,13 +2586,13 @@
 
 			const VkPipelineVertexInputStateCreateInfo		vertexInputStateParams				=
 			{
-				VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,		// VkStructureType							sType;
-				DE_NULL,														// const void*								pNext;
-				0u,																// VkPipelineVertexInputStateCreateFlags	flags;
-				1u,																// deUint32									vertexBindingDescriptionCount;
-				&vertexInputBindingDescription,									// const VkVertexInputBindingDescription*	pVertexBindingDescriptions;
-				1u,																// deUint32									vertexAttributeDescriptionCount;
-				vertexInputAttributeDescriptions								// const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
+				VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,	// VkStructureType							sType;
+				DE_NULL,													// const void*								pNext;
+				0u,															// VkPipelineVertexInputStateCreateFlags	flags;
+				1u,															// deUint32									vertexBindingDescriptionCount;
+				&vertexInputBindingDescription,								// const VkVertexInputBindingDescription*	pVertexBindingDescriptions;
+				1u,															// deUint32									vertexAttributeDescriptionCount;
+				vertexInputAttributeDescriptions							// const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
 			};
 
 			const VkPipelineInputAssemblyStateCreateInfo	inputAssemblyStateParams			=
@@ -2606,74 +2606,74 @@
 
 			const VkViewport	viewport	=
 			{
-				0.0f,							// float	x;
-				0.0f,							// float	y;
-				(float)extent3D.width,	// float	width;
-				(float)extent3D.height,	// float	height;
-				0.0f,							// float	minDepth;
-				1.0f							// float	maxDepth;
+				0.0f,									// float	x;
+				0.0f,									// float	y;
+				(float)m_params.src.image.extent.width,	// float	width;
+				(float)m_params.src.image.extent.height,// float	height;
+				0.0f,									// float	minDepth;
+				1.0f									// float	maxDepth;
 			};
 
 			const VkRect2D		scissor		=
 			{
-				{ 0, 0 },										// VkOffset2D	offset;
-				{ extent3D.width, extent3D.height }	// VkExtent2D	extent;
+				{ 0, 0 },																// VkOffset2D	offset;
+				{ m_params.src.image.extent.width, m_params.src.image.extent.height }	// VkExtent2D	extent;
 			};
 
 			const VkPipelineViewportStateCreateInfo			viewportStateParams		=
 			{
-				VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,			// VkStructureType						sType;
-				DE_NULL,														// const void*							pNext;
-				0u,																// VkPipelineViewportStateCreateFlags	flags;
-				1u,																// deUint32								viewportCount;
-				&viewport,														// const VkViewport*					pViewports;
-				1u,																// deUint32								scissorCount;
-				&scissor														// const VkRect2D*						pScissors;
+				VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,	// VkStructureType						sType;
+				DE_NULL,												// const void*							pNext;
+				0u,														// VkPipelineViewportStateCreateFlags	flags;
+				1u,														// deUint32								viewportCount;
+				&viewport,												// const VkViewport*					pViewports;
+				1u,														// deUint32								scissorCount;
+				&scissor												// const VkRect2D*						pScissors;
 			};
 
 			const VkPipelineRasterizationStateCreateInfo	rasterStateParams		=
 			{
-				VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,		// VkStructureType							sType;
-				DE_NULL,														// const void*								pNext;
-				0u,																// VkPipelineRasterizationStateCreateFlags	flags;
-				false,															// VkBool32									depthClampEnable;
-				false,															// 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;
+				VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,	// VkStructureType							sType;
+				DE_NULL,													// const void*								pNext;
+				0u,															// VkPipelineRasterizationStateCreateFlags	flags;
+				false,														// VkBool32									depthClampEnable;
+				false,														// 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	multisampleStateParams		=
 			{
-				VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,		// VkStructureType							sType;
-				DE_NULL,														// const void*								pNext;
-				0u,																// VkPipelineMultisampleStateCreateFlags	flags;
-				rasterizationSamples,											// VkSampleCountFlagBits					rasterizationSamples;
-				VK_FALSE,														// VkBool32									sampleShadingEnable;
-				0.0f,															// float									minSampleShading;
-				DE_NULL,														// const VkSampleMask*						pSampleMask;
-				VK_FALSE,														// VkBool32									alphaToCoverageEnable;
-				VK_FALSE														// VkBool32									alphaToOneEnable;
+				VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,	// VkStructureType							sType;
+				DE_NULL,													// const void*								pNext;
+				0u,															// VkPipelineMultisampleStateCreateFlags	flags;
+				rasterizationSamples,										// VkSampleCountFlagBits					rasterizationSamples;
+				VK_FALSE,													// VkBool32									sampleShadingEnable;
+				0.0f,														// float									minSampleShading;
+				DE_NULL,													// const VkSampleMask*						pSampleMask;
+				VK_FALSE,													// VkBool32									alphaToCoverageEnable;
+				VK_FALSE													// VkBool32									alphaToOneEnable;
 			};
 
 			const VkPipelineColorBlendAttachmentState	colorBlendAttachmentState	=
 			{
-				false,														// VkBool32			blendEnable;
-				VK_BLEND_FACTOR_ONE,										// VkBlend			srcBlendColor;
-				VK_BLEND_FACTOR_ZERO,										// VkBlend			destBlendColor;
-				VK_BLEND_OP_ADD,											// VkBlendOp		blendOpColor;
-				VK_BLEND_FACTOR_ONE,										// VkBlend			srcBlendAlpha;
-				VK_BLEND_FACTOR_ZERO,										// VkBlend			destBlendAlpha;
-				VK_BLEND_OP_ADD,											// VkBlendOp		blendOpAlpha;
+				false,							// VkBool32			blendEnable;
+				VK_BLEND_FACTOR_ONE,			// VkBlend			srcBlendColor;
+				VK_BLEND_FACTOR_ZERO,			// VkBlend			destBlendColor;
+				VK_BLEND_OP_ADD,				// VkBlendOp		blendOpColor;
+				VK_BLEND_FACTOR_ONE,			// VkBlend			srcBlendAlpha;
+				VK_BLEND_FACTOR_ZERO,			// VkBlend			destBlendAlpha;
+				VK_BLEND_OP_ADD,				// VkBlendOp		blendOpAlpha;
 				(VK_COLOR_COMPONENT_R_BIT |
-				 VK_COLOR_COMPONENT_G_BIT |
-				 VK_COLOR_COMPONENT_B_BIT |
-				 VK_COLOR_COMPONENT_A_BIT)									// VkChannelFlags	channelWriteMask;
+				VK_COLOR_COMPONENT_G_BIT |
+				VK_COLOR_COMPONENT_B_BIT |
+				VK_COLOR_COMPONENT_A_BIT)		// VkChannelFlags	channelWriteMask;
 			};
 
 			const VkPipelineColorBlendStateCreateInfo	colorBlendStateParams	=
@@ -2737,7 +2737,7 @@
 				*framebuffer,											// VkFramebuffer		framebuffer;
 				{
 					{ 0, 0 },
-					{ extent3D.width, extent3D.height }
+					{ m_params.src.image.extent.width, m_params.src.image.extent.height }
 				},														// VkRect2D				renderArea;
 				1u,														// deUint32				clearValueCount;
 				clearValues												// const VkClearValue*	pClearValues;
@@ -2746,11 +2746,12 @@
 			VK_CHECK(vk.beginCommandBuffer(*m_cmdBuffer, &cmdBufferBeginInfo));
 			vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &srcImageBarrier);
 			vk.cmdBeginRenderPass(*m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+
 			const VkDeviceSize	vertexBufferOffset	= 0u;
 
 			vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *graphicsPipeline);
 			vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &vertexBuffer.get(), &vertexBufferOffset);
-				vk.cmdDraw(*m_cmdBuffer, (deUint32)vertices.size(), 1, 0, 0);
+			vk.cmdDraw(*m_cmdBuffer, (deUint32)vertices.size(), 1, 0, 0);
 
 			vk.cmdEndRenderPass(*m_cmdBuffer);
 			VK_CHECK(vk.endCommandBuffer(*m_cmdBuffer));
@@ -2856,13 +2857,13 @@
 		VK_QUEUE_FAMILY_IGNORED,				// deUint32					srcQueueFamilyIndex;
 		VK_QUEUE_FAMILY_IGNORED,				// deUint32					dstQueueFamilyIndex;
 		m_destination.get(),					// VkImage					image;
-			{									// VkImageSubresourceRange	subresourceRange;
-				getAspectFlags(dstTcuFormat),	// VkImageAspectFlags		aspectMask;
-				0u,								// deUint32					baseMipLevel;
-				1u,								// deUint32					mipLevels;
-				0u,								// deUint32					baseArraySlice;
-				getArraySize(m_params.dst.image)// deUint32					arraySize;
-			}
+		{										// VkImageSubresourceRange	subresourceRange;
+			getAspectFlags(dstTcuFormat),		// VkImageAspectFlags		aspectMask;
+			0u,									// deUint32					baseMipLevel;
+			1u,									// deUint32					mipLevels;
+			0u,									// deUint32					baseArraySlice;
+			getArraySize(m_params.dst.image)	// deUint32					arraySize;
+		}
 	};
 
 	const VkCommandBufferBeginInfo	cmdBufferBeginInfo	=
@@ -2878,17 +2879,11 @@
 	vk.cmdResolveImage(*m_cmdBuffer, m_multisampledImage.get(), VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, m_destination.get(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)m_params.regions.size(), imageResolves.data());
 	vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
 	VK_CHECK(vk.endCommandBuffer(*m_cmdBuffer));
+	submitCommandsAndWait(vk, vkDevice, queue, *m_cmdBuffer);
 
-	submitCommandsAndWait (vk, vkDevice, queue, *m_cmdBuffer);
+	de::MovePtr<tcu::TextureLevel>	resultTextureLevel	= readImage(*m_destination, m_params.dst.image);
 
-	// check the result of resolving image
-	{
-		de::MovePtr<tcu::TextureLevel>	resultTextureLevel	= readImage(*m_destination, m_params.dst.image);
-
-		if (QP_TEST_RESULT_PASS != checkTestResult(resultTextureLevel->getAccess()).getCode())
-			return tcu::TestStatus::fail("CopiesAndBlitting test");
-	}
-	return tcu::TestStatus::pass("CopiesAndBlitting test");
+	return checkTestResult(resultTextureLevel->getAccess());
 }
 
 tcu::TestStatus ResolveImageToImage::checkTestResult (tcu::ConstPixelBufferAccess result)
@@ -3075,6 +3070,7 @@
 		"	gl_Position = a_position;\n"
 		"}\n");
 
+
 	programCollection.glslSources.add("frag") << glu::FragmentSource(
 		"#version 310 es\n"
 		"layout (location = 0) out highp vec4 o_color;\n"
@@ -3565,6 +3561,7 @@
 	de::MovePtr<tcu::TestCaseGroup>	imageToImageTests		(new tcu::TestCaseGroup(testCtx, "image_to_image", "Copy from image to image"));
 	de::MovePtr<tcu::TestCaseGroup>	imgToImgSimpleTests		(new tcu::TestCaseGroup(testCtx, "simple_tests", "Copy from image to image simple tests"));
 	de::MovePtr<tcu::TestCaseGroup>	imgToImgAllFormatsTests	(new tcu::TestCaseGroup(testCtx, "all_formats", "Copy from image to image with all compatible formats"));
+	de::MovePtr<tcu::TestCaseGroup>	imgToImg3dImagesTests	(new tcu::TestCaseGroup(testCtx, "3d_images", "Coping operations on 3d images"));
 
 	de::MovePtr<tcu::TestCaseGroup>	imageToBufferTests		(new tcu::TestCaseGroup(testCtx, "image_to_buffer", "Copy from image to buffer"));
 	de::MovePtr<tcu::TestCaseGroup>	bufferToImageTests		(new tcu::TestCaseGroup(testCtx, "buffer_to_image", "Copy from buffer to image"));
@@ -3607,6 +3604,7 @@
 		params.src.image.imageType	= VK_IMAGE_TYPE_2D;
 		params.src.image.format		= VK_FORMAT_R8G8B8A8_UINT;
 		params.src.image.extent		= defaultExtent;
+		params.dst.image.imageType	= VK_IMAGE_TYPE_2D;
 		params.dst.image.format		= VK_FORMAT_R8G8B8A8_UINT;
 		params.dst.image.extent		= defaultExtent;
 
@@ -4703,6 +4701,7 @@
 			params.dst.image.format	= VK_FORMAT_R8G8B8A8_UNORM;
 			blitImgSimpleTests->addChild(new BlittingTestCase(testCtx, testName + "_nearest", description, params));
 
+
 			params.dst.image.format	= VK_FORMAT_R32_SFLOAT;
 			const std::string	descriptionOfRGBAToR32	(description + " and different formats (R8G8B8A8 -> R32)");
 			blitImgSimpleTests->addChild(new BlittingTestCase(testCtx, testName + "_" + getFormatCaseName(params.dst.image.format) + "_nearest", descriptionOfRGBAToR32, params));
@@ -5111,6 +5110,305 @@
 		}
 	}
 
+	{
+		TestParams	params3DTo2D;
+		const deUint32	slicesLayers			= 16u;
+		params3DTo2D.src.image.imageType		= VK_IMAGE_TYPE_3D;
+		params3DTo2D.src.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params3DTo2D.src.image.extent			= defaultHalfExtent;
+		params3DTo2D.src.image.extent.depth		= slicesLayers;
+		params3DTo2D.dst.image.imageType		= VK_IMAGE_TYPE_2D;
+		params3DTo2D.dst.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params3DTo2D.dst.image.extent			= defaultHalfExtent;
+		params3DTo2D.dst.image.extent.depth		= slicesLayers;
+
+		for (deUint32 slicesLayersNdx = 0; slicesLayersNdx < slicesLayers; ++slicesLayersNdx)
+		{
+			const VkImageSubresourceLayers	sourceLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				0u,							// uint32_t				baseArrayLayer;
+				1u							// uint32_t				layerCount;
+			};
+
+			const VkImageSubresourceLayers	destinationLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				slicesLayersNdx,			// uint32_t				baseArrayLayer;
+				1u							// uint32_t				layerCount;
+			};
+
+			const VkImageCopy				testCopy	=
+			{
+				sourceLayer,						// VkImageSubresourceLayers	srcSubresource;
+				{0, 0, (deInt32)slicesLayersNdx},	// VkOffset3D					srcOffset;
+				destinationLayer,					// VkImageSubresourceLayers	dstSubresource;
+				{0, 0, 0},							// VkOffset3D					dstOffset;
+				defaultHalfExtent,					// VkExtent3D					extent;
+			};
+
+			CopyRegion	imageCopy;
+			imageCopy.imageCopy	= testCopy;
+
+			params3DTo2D.regions.push_back(imageCopy);
+		}
+		imgToImg3dImagesTests->addChild(new CopyImageToImageTestCase(testCtx, "3d_to_2d_by_slices", "copy 2d layers to 3d slices one by one", params3DTo2D));
+	}
+
+	{
+		TestParams	params2DTo3D;
+		const deUint32	slicesLayers			= 16u;
+		params2DTo3D.src.image.imageType		= VK_IMAGE_TYPE_2D;
+		params2DTo3D.src.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params2DTo3D.src.image.extent			= defaultHalfExtent;
+		params2DTo3D.src.image.extent.depth		= slicesLayers;
+		params2DTo3D.dst.image.imageType		= VK_IMAGE_TYPE_3D;
+		params2DTo3D.dst.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params2DTo3D.dst.image.extent			= defaultHalfExtent;
+		params2DTo3D.dst.image.extent.depth		= slicesLayers;
+
+		for (deUint32 slicesLayersNdx = 0; slicesLayersNdx < slicesLayers; ++slicesLayersNdx)
+		{
+			const VkImageSubresourceLayers	sourceLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				slicesLayersNdx,			// uint32_t				baseArrayLayer;
+				1u							// uint32_t				layerCount;
+			};
+
+			const VkImageSubresourceLayers	destinationLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				0u,							// uint32_t				baseArrayLayer;
+				1u							// uint32_t				layerCount;
+			};
+
+			const VkImageCopy				testCopy	=
+			{
+				sourceLayer,						// VkImageSubresourceLayers	srcSubresource;
+				{0, 0, 0},							// VkOffset3D				srcOffset;
+				destinationLayer,					// VkImageSubresourceLayers	dstSubresource;
+				{0, 0, (deInt32)slicesLayersNdx},	// VkOffset3D				dstOffset;
+				defaultHalfExtent,					// VkExtent3D				extent;
+			};
+
+			CopyRegion	imageCopy;
+			imageCopy.imageCopy	= testCopy;
+
+			params2DTo3D.regions.push_back(imageCopy);
+		}
+
+		imgToImg3dImagesTests->addChild(new CopyImageToImageTestCase(testCtx, "2d_to_3d_by_layers", "copy 3d slices to 2d layers one by one", params2DTo3D));
+	}
+
+	{
+		TestParams	params3DTo2D;
+		const deUint32	slicesLayers			= 16u;
+		params3DTo2D.src.image.imageType		= VK_IMAGE_TYPE_3D;
+		params3DTo2D.src.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params3DTo2D.src.image.extent			= defaultHalfExtent;
+		params3DTo2D.src.image.extent.depth		= slicesLayers;
+		params3DTo2D.dst.image.imageType		= VK_IMAGE_TYPE_2D;
+		params3DTo2D.dst.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params3DTo2D.dst.image.extent			= defaultHalfExtent;
+		params3DTo2D.dst.image.extent.depth		= slicesLayers;
+
+		{
+			const VkImageSubresourceLayers	sourceLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				0u,							// uint32_t				baseArrayLayer;
+				1u							// uint32_t				layerCount;
+			};
+
+			const VkImageSubresourceLayers	destinationLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				0,							// uint32_t				baseArrayLayer;
+				slicesLayers				// uint32_t				layerCount;
+			};
+
+			const VkImageCopy				testCopy	=
+			{
+				sourceLayer,					// VkImageSubresourceLayers	srcSubresource;
+				{0, 0, 0},						// VkOffset3D				srcOffset;
+				destinationLayer,				// VkImageSubresourceLayers	dstSubresource;
+				{0, 0, 0},						// VkOffset3D				dstOffset;
+				params3DTo2D.src.image.extent	// VkExtent3D				extent;
+			};
+
+			CopyRegion	imageCopy;
+			imageCopy.imageCopy	= testCopy;
+
+			params3DTo2D.regions.push_back(imageCopy);
+		}
+		imgToImg3dImagesTests->addChild(new CopyImageToImageTestCase(testCtx, "3d_to_2d_whole", "copy 3d slices to 2d layers all at once", params3DTo2D));
+	}
+
+	{
+		TestParams	params2DTo3D;
+		const deUint32	slicesLayers			= 16u;
+		params2DTo3D.src.image.imageType		= VK_IMAGE_TYPE_2D;
+		params2DTo3D.src.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params2DTo3D.src.image.extent			= defaultHalfExtent;
+		params2DTo3D.src.image.extent.depth		= slicesLayers;
+		params2DTo3D.dst.image.imageType		= VK_IMAGE_TYPE_3D;
+		params2DTo3D.dst.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params2DTo3D.dst.image.extent			= defaultHalfExtent;
+		params2DTo3D.dst.image.extent.depth		= slicesLayers;
+
+		{
+			const VkImageSubresourceLayers	sourceLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				0u,							// uint32_t				baseArrayLayer;
+				slicesLayers				// uint32_t				layerCount;
+			};
+
+			const VkImageSubresourceLayers	destinationLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				0u,							// uint32_t				baseArrayLayer;
+				1u							// uint32_t				layerCount;
+			};
+
+			const VkImageCopy				testCopy	=
+			{
+				sourceLayer,					// VkImageSubresourceLayers	srcSubresource;
+				{0, 0, 0},						// VkOffset3D				srcOffset;
+				destinationLayer,				// VkImageSubresourceLayers	dstSubresource;
+				{0, 0, 0},						// VkOffset3D				dstOffset;
+				params2DTo3D.dst.image.extent,	// VkExtent3D				extent;
+			};
+
+			CopyRegion	imageCopy;
+			imageCopy.imageCopy	= testCopy;
+
+			params2DTo3D.regions.push_back(imageCopy);
+		}
+
+		imgToImg3dImagesTests->addChild(new CopyImageToImageTestCase(testCtx, "2d_to_3d_whole", "copy 2d layers to 3d slices all at once", params2DTo3D));
+	}
+
+	{
+		TestParams	params3DTo2D;
+		const deUint32	slicesLayers			= 16u;
+		params3DTo2D.src.image.imageType		= VK_IMAGE_TYPE_3D;
+		params3DTo2D.src.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params3DTo2D.src.image.extent			= defaultHalfExtent;
+		params3DTo2D.src.image.extent.depth		= slicesLayers;
+		params3DTo2D.dst.image.imageType		= VK_IMAGE_TYPE_2D;
+		params3DTo2D.dst.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params3DTo2D.dst.image.extent			= defaultHalfExtent;
+		params3DTo2D.dst.image.extent.depth		= slicesLayers;
+
+		const deUint32 regionWidth				= defaultHalfExtent.width / slicesLayers -1;
+		const deUint32 regionHeight				= defaultHalfExtent.height / slicesLayers -1 ;
+
+		for (deUint32 slicesLayersNdx = 0; slicesLayersNdx < slicesLayers; ++slicesLayersNdx)
+		{
+			const VkImageSubresourceLayers	sourceLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				0u,							// uint32_t				baseArrayLayer;
+				1u							// uint32_t				layerCount;
+			};
+
+			const VkImageSubresourceLayers	destinationLayer	=
+			{
+					VK_IMAGE_ASPECT_COLOR_BIT,		// VkImageAspectFlags	aspectMask;
+					0u,								// uint32_t				mipLevel;
+					slicesLayersNdx,				// uint32_t				baseArrayLayer;
+					1u								// uint32_t				layerCount;
+			};
+
+
+			const VkImageCopy				testCopy	=
+			{
+				sourceLayer,															// VkImageSubresourceLayers	srcSubresource;
+				{0, (deInt32)(regionHeight*slicesLayersNdx), (deInt32)slicesLayersNdx},	// VkOffset3D				srcOffset;
+					destinationLayer,													// VkImageSubresourceLayers	dstSubresource;
+					{(deInt32)(regionWidth*slicesLayersNdx), 0, 0},						// VkOffset3D				dstOffset;
+					{
+						(defaultHalfExtent.width - regionWidth*slicesLayersNdx),
+						(defaultHalfExtent.height - regionHeight*slicesLayersNdx),
+						1
+					}																	// VkExtent3D				extent;
+			};
+
+			CopyRegion	imageCopy;
+			imageCopy.imageCopy     = testCopy;
+			params3DTo2D.regions.push_back(imageCopy);
+		}
+		imgToImg3dImagesTests->addChild(new CopyImageToImageTestCase(testCtx, "3d_to_2d_regions", "copy 3d slices regions to 2d layers", params3DTo2D));
+	}
+
+	{
+		TestParams	params2DTo3D;
+		const deUint32	slicesLayers			= 16u;
+		params2DTo3D.src.image.imageType		= VK_IMAGE_TYPE_2D;
+		params2DTo3D.src.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params2DTo3D.src.image.extent			= defaultHalfExtent;
+		params2DTo3D.src.image.extent.depth		= slicesLayers;
+		params2DTo3D.dst.image.imageType		= VK_IMAGE_TYPE_3D;
+		params2DTo3D.dst.image.format			= VK_FORMAT_R8G8B8A8_UINT;
+		params2DTo3D.dst.image.extent			= defaultHalfExtent;
+		params2DTo3D.dst.image.extent.depth		= slicesLayers;
+
+		const deUint32 regionWidth				= defaultHalfExtent.width / slicesLayers -1;
+		const deUint32 regionHeight				= defaultHalfExtent.height / slicesLayers -1 ;
+
+		for (deUint32 slicesLayersNdx = 0; slicesLayersNdx < slicesLayers; ++slicesLayersNdx)
+		{
+			const VkImageSubresourceLayers	sourceLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				slicesLayersNdx,			// uint32_t				baseArrayLayer;
+				1u							// uint32_t				layerCount;
+			};
+
+			const VkImageSubresourceLayers	destinationLayer	=
+			{
+				VK_IMAGE_ASPECT_COLOR_BIT,	// VkImageAspectFlags	aspectMask;
+				0u,							// uint32_t				mipLevel;
+				0u,							// uint32_t				baseArrayLayer;
+				1u							// uint32_t				layerCount;
+			};
+
+			const VkImageCopy				testCopy	=
+			{
+				sourceLayer,																// VkImageSubresourceLayers	srcSubresource;
+				{(deInt32)(regionWidth*slicesLayersNdx), 0, 0},								// VkOffset3D				srcOffset;
+				destinationLayer,															// VkImageSubresourceLayers	dstSubresource;
+				{0, (deInt32)(regionHeight*slicesLayersNdx), (deInt32)(slicesLayersNdx)},	// VkOffset3D				dstOffset;
+				{
+					defaultHalfExtent.width - regionWidth*slicesLayersNdx,
+					defaultHalfExtent.height - regionHeight*slicesLayersNdx,
+					1
+				}																			// VkExtent3D				extent;
+			};
+
+			CopyRegion	imageCopy;
+			imageCopy.imageCopy	= testCopy;
+
+			params2DTo3D.regions.push_back(imageCopy);
+		}
+
+		imgToImg3dImagesTests->addChild(new CopyImageToImageTestCase(testCtx, "2d_to_3d_regions", "copy 2d layers regions to 3d slices", params2DTo3D));
+	}
+
+	imageToImageTests->addChild(imgToImg3dImagesTests.release());
+
 	copiesAndBlittingTests->addChild(imageToImageTests.release());
 	copiesAndBlittingTests->addChild(imageToBufferTests.release());
 	copiesAndBlittingTests->addChild(bufferToImageTests.release());
diff --git a/external/vulkancts/modules/vulkan/api/vktApiDescriptorPoolTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiDescriptorPoolTests.cpp
index 9e3509c..64d863f 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiDescriptorPoolTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiDescriptorPoolTests.cpp
@@ -37,6 +37,7 @@
 #include "deUniquePtr.hpp"
 #include "deSharedPtr.hpp"
 #include "deInt32.h"
+#include "deSTLUtil.hpp"
 
 namespace vkt
 {
@@ -142,6 +143,118 @@
 	return tcu::TestStatus::pass("Pass");
 }
 
+tcu::TestStatus outOfPoolMemoryTest (Context& context)
+{
+	const DeviceInterface&	vkd							= context.getDeviceInterface();
+	const VkDevice			device						= context.getDevice();
+	const bool				expectOutOfPoolMemoryError	= de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_KHR_maintenance1");
+	deUint32				numErrorsReturned			= 0;
+
+	const struct FailureCase
+	{
+		deUint32	poolDescriptorCount;		//!< total number of descriptors (of a given type) in the descriptor pool
+		deUint32	poolMaxSets;				//!< max number of descriptor sets that can be allocated from the pool
+		deUint32	bindingCount;				//!< number of bindings per descriptor set layout
+		deUint32	bindingDescriptorCount;		//!< number of descriptors in a binding (array size) (in all bindings)
+		deUint32	descriptorSetCount;			//!< number of descriptor sets to allocate
+		string		description;				//!< the log message for this failure condition
+	} failureCases[] =
+	{
+		//	pool			pool		binding		binding		alloc set
+		//	descr. count	max sets	count		array size	count
+		{	4u,				2u,			1u,			1u,			3u,		"Out of descriptor sets",											},
+		{	3u,				4u,			1u,			1u,			4u,		"Out of descriptors (due to the number of sets)",					},
+		{	2u,				1u,			3u,			1u,			1u,		"Out of descriptors (due to the number of bindings)",				},
+		{	3u,				2u,			1u,			2u,			2u,		"Out of descriptors (due to descriptor array size)",				},
+		{	5u,				1u,			2u,			3u,			1u,		"Out of descriptors (due to descriptor array size in all bindings)",},
+	};
+
+	context.getTestContext().getLog()
+		<< tcu::TestLog::Message
+		<< "Creating a descriptor pool with insufficient resources. Descriptor set allocation is likely to fail."
+		<< tcu::TestLog::EndMessage;
+
+	for (deUint32 failureCaseNdx = 0u; failureCaseNdx < DE_LENGTH_OF_ARRAY(failureCases); ++failureCaseNdx)
+	{
+		const FailureCase& params = failureCases[failureCaseNdx];
+		context.getTestContext().getLog() << tcu::TestLog::Message << "Checking: " << params.description << tcu::TestLog::EndMessage;
+
+		for (VkDescriptorType	descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER;
+								descriptorType < VK_DESCRIPTOR_TYPE_LAST;
+								descriptorType = static_cast<VkDescriptorType>(descriptorType + 1))
+		{
+			context.getTestContext().getLog() << tcu::TestLog::Message << "- " << getDescriptorTypeName(descriptorType) << tcu::TestLog::EndMessage;
+
+			const VkDescriptorPoolSize					descriptorPoolSize =
+			{
+				descriptorType,												// type
+				params.poolDescriptorCount,									// descriptorCount
+			};
+
+			const VkDescriptorPoolCreateInfo			descriptorPoolCreateInfo =
+			{
+				VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,				// VkStructureType                sType;
+				DE_NULL,													// const void*                    pNext;
+				(VkDescriptorPoolCreateFlags)0,								// VkDescriptorPoolCreateFlags    flags;
+				params.poolMaxSets,											// uint32_t                       maxSets;
+				1u,															// uint32_t                       poolSizeCount;
+				&descriptorPoolSize,										// const VkDescriptorPoolSize*    pPoolSizes;
+			};
+
+			const Unique<VkDescriptorPool>				descriptorPool(createDescriptorPool(vkd, device, &descriptorPoolCreateInfo));
+
+			const VkDescriptorSetLayoutBinding			descriptorSetLayoutBinding =
+			{
+				0u,															// uint32_t              binding;
+				descriptorType,												// VkDescriptorType      descriptorType;
+				params.bindingDescriptorCount,								// uint32_t              descriptorCount;
+				VK_SHADER_STAGE_ALL,										// VkShaderStageFlags    stageFlags;
+				DE_NULL,													// const VkSampler*      pImmutableSamplers;
+			};
+
+			const vector<VkDescriptorSetLayoutBinding>	descriptorSetLayoutBindings (params.bindingCount, descriptorSetLayoutBinding);
+			const VkDescriptorSetLayoutCreateInfo		descriptorSetLayoutInfo =
+			{
+				VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,		// VkStructureType                        sType;
+				DE_NULL,													// const void*                            pNext;
+				(VkDescriptorSetLayoutCreateFlags)0,						// VkDescriptorSetLayoutCreateFlags       flags;
+				static_cast<deUint32>(descriptorSetLayoutBindings.size()),	// uint32_t                               bindingCount;
+				&descriptorSetLayoutBindings[0],							// const VkDescriptorSetLayoutBinding*    pBindings;
+			};
+
+			const Unique<VkDescriptorSetLayout>			descriptorSetLayout	(createDescriptorSetLayout(vkd, device, &descriptorSetLayoutInfo));
+			const vector<VkDescriptorSetLayout>			rawSetLayouts		(params.descriptorSetCount, *descriptorSetLayout);
+			vector<VkDescriptorSet>						rawDescriptorSets	(params.descriptorSetCount, DE_NULL);
+
+			const VkDescriptorSetAllocateInfo			descriptorSetAllocateInfo =
+			{
+				VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,				// VkStructureType                 sType;
+				DE_NULL,													// const void*                     pNext;
+				*descriptorPool,											// VkDescriptorPool                descriptorPool;
+				static_cast<deUint32>(rawSetLayouts.size()),				// uint32_t                        descriptorSetCount;
+				&rawSetLayouts[0],											// const VkDescriptorSetLayout*    pSetLayouts;
+			};
+
+			const VkResult result = vkd.allocateDescriptorSets(device, &descriptorSetAllocateInfo, &rawDescriptorSets[0]);
+
+			if (result != VK_SUCCESS)
+			{
+				++numErrorsReturned;
+
+				if (expectOutOfPoolMemoryError && result != VK_ERROR_OUT_OF_POOL_MEMORY_KHR)
+					return tcu::TestStatus::fail("Expected VK_ERROR_OUT_OF_POOL_MEMORY_KHR but got " + string(getResultName(result)) + " instead");
+			}
+			else
+				context.getTestContext().getLog() << tcu::TestLog::Message << "  Allocation was successful anyway" << tcu::TestLog::EndMessage;
+		}
+	}
+
+	if (numErrorsReturned == 0u)
+		return tcu::TestStatus::pass("Not validated");
+	else
+		return tcu::TestStatus::pass("Pass");
+}
+
 } // anonymous
 
 tcu::TestCaseGroup* createDescriptorPoolTests (tcu::TestContext& testCtx)
@@ -159,6 +272,10 @@
 					"repeated_reset_long",
 					"Test many cycles of vkAllocateDescriptorSets and vkResetDescriptorPool",
 					resetDescriptorPoolTest, numIterationsHigh);
+	addFunctionCase(descriptorPoolTests.get(),
+					"out_of_pool_memory",
+					"Test that when we run out of descriptors a correct error code is returned",
+					outOfPoolMemoryTest);
 
 	return descriptorPoolTests.release();
 }
diff --git a/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
index 77de38a..c253ece 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
@@ -631,6 +631,72 @@
 	return tcu::TestStatus::pass("Pass");
 }
 
+Move<VkInstance> createInstanceWithExtension (const PlatformInterface& vkp, const char* extensionName)
+{
+	const vector<VkExtensionProperties>	instanceExts	= enumerateInstanceExtensionProperties(vkp, DE_NULL);
+	vector<string>						enabledExts;
+
+	if (!isExtensionSupported(instanceExts, RequiredExtension(extensionName)))
+		TCU_THROW(NotSupportedError, (string(extensionName) + " is not supported").c_str());
+
+	enabledExts.push_back(extensionName);
+
+	return createDefaultInstance(vkp, vector<string>() /* layers */, enabledExts);
+}
+
+tcu::TestStatus createDeviceFeatures2Test (Context& context)
+{
+	const PlatformInterface&		vkp						= context.getPlatformInterface();
+	const Unique<VkInstance>		instance				(createInstanceWithExtension(vkp, "VK_KHR_get_physical_device_properties2"));
+	const InstanceDriver			vki						(vkp, instance.get());
+	const VkPhysicalDevice			physicalDevice			= chooseDevice(vki, instance.get(), context.getTestContext().getCommandLine());
+	const deUint32					queueFamilyIndex		= 0;
+	const deUint32					queueCount				= 1;
+	const deUint32					queueIndex				= 0;
+	const float						queuePriority			= 1.0f;
+
+	VkPhysicalDeviceFeatures2KHR	enabledFeatures;
+	const VkDeviceQueueCreateInfo	deviceQueueCreateInfo	=
+	{
+		VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
+		DE_NULL,
+		(VkDeviceQueueCreateFlags)0u,
+		queueFamilyIndex,
+		queueCount,
+		&queuePriority,
+	};
+	const VkDeviceCreateInfo		deviceCreateInfo	=
+	{
+		VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
+		&enabledFeatures,
+		(VkDeviceCreateFlags)0u,
+		1,
+		&deviceQueueCreateInfo,
+		0,
+		DE_NULL,
+		0,
+		DE_NULL,
+		DE_NULL,
+	};
+
+	// Populate enabledFeatures
+	enabledFeatures.sType		= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
+	enabledFeatures.pNext		= DE_NULL;
+
+	vki.getPhysicalDeviceFeatures2KHR(physicalDevice, &enabledFeatures);
+
+	{
+		const Unique<VkDevice>	device		(createDevice(vki, physicalDevice, &deviceCreateInfo));
+		const DeviceDriver		vkd			(vki, device.get());
+		VkQueue					queue;
+
+		vkd.getDeviceQueue(device.get(), queueFamilyIndex, queueIndex, &queue);
+		VK_CHECK(vkd.queueWaitIdle(queue));
+	}
+
+	return tcu::TestStatus::pass("Pass");
+}
+
 } // anonymous
 
 tcu::TestCaseGroup* createDeviceInitializationTests (tcu::TestContext& testCtx)
@@ -645,6 +711,7 @@
 	addFunctionCase(deviceInitializationTests.get(), "create_multiple_devices",					"", createMultipleDevicesTest);
 	addFunctionCase(deviceInitializationTests.get(), "create_device_unsupported_extensions",	"", createDeviceWithUnsupportedExtensionsTest);
 	addFunctionCase(deviceInitializationTests.get(), "create_device_various_queue_counts",		"", createDeviceWithVariousQueueCountsTest);
+	addFunctionCase(deviceInitializationTests.get(), "create_device_features2",					"", createDeviceFeatures2Test);
 
 	return deviceInitializationTests.release();
 }
diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
index d3b655a..aeabde0 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
@@ -95,6 +95,11 @@
 #define LIMIT(_X_)		DE_OFFSET_OF(VkPhysicalDeviceLimits, _X_), (const char*)(#_X_)
 #define FEATURE(_X_)	DE_OFFSET_OF(VkPhysicalDeviceFeatures, _X_)
 
+inline bool isExtensionSupported (const vector<string>& extensionStrings, const string& extensionName)
+{
+	return de::contains(extensionStrings.begin(), extensionStrings.end(), extensionName);
+}
+
 bool validateFeatureLimits(VkPhysicalDeviceProperties* properties, VkPhysicalDeviceFeatures* features, TestLog& log)
 {
 	bool						limitsOk	= true;
@@ -650,6 +655,7 @@
 		"VK_KHR_win32_surface",
 		"VK_KHR_xcb_surface",
 		"VK_KHR_xlib_surface",
+		"VK_KHR_get_physical_device_properties2",
 	};
 
 	checkKhrExtensions(results, extensions, DE_LENGTH_OF_ARRAY(s_allowedInstanceKhrExtensions), s_allowedInstanceKhrExtensions);
@@ -658,14 +664,16 @@
 
 void checkDeviceExtensions (tcu::ResultCollector& results, const vector<string>& extensions)
 {
-	static const char* s_allowedInstanceKhrExtensions[] =
+	static const char* s_allowedDeviceKhrExtensions[] =
 	{
 		"VK_KHR_swapchain",
 		"VK_KHR_display_swapchain",
-		"VK_KHR_sampler_mirror_clamp_to_edge"
+		"VK_KHR_sampler_mirror_clamp_to_edge",
+		"VK_KHR_shader_draw_parameters",
+		"VK_KHR_maintenance1",
 	};
 
-	checkKhrExtensions(results, extensions, DE_LENGTH_OF_ARRAY(s_allowedInstanceKhrExtensions), s_allowedInstanceKhrExtensions);
+	checkKhrExtensions(results, extensions, DE_LENGTH_OF_ARRAY(s_allowedDeviceKhrExtensions), s_allowedDeviceKhrExtensions);
 	checkDuplicateExtensions(results, extensions);
 }
 
@@ -1769,13 +1777,24 @@
 	addFunctionCase(testGroup, "compressed_formats",	"",	testCompressedFormatsSupported);
 }
 
-VkImageUsageFlags getValidImageUsageFlags (VkFormat, VkFormatFeatureFlags supportedFeatures)
+VkImageUsageFlags getValidImageUsageFlags (const VkFormatFeatureFlags supportedFeatures, const bool useKhrMaintenance1Semantics)
 {
 	VkImageUsageFlags	flags	= (VkImageUsageFlags)0;
 
-	// If format is supported at all, it must be valid transfer src+dst
-	if (supportedFeatures != 0)
-		flags |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT|VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+	if (useKhrMaintenance1Semantics)
+	{
+		if ((supportedFeatures & VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR) != 0)
+			flags |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+
+		if ((supportedFeatures & VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR) != 0)
+			flags |= VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+	}
+	else
+	{
+		// If format is supported at all, it must be valid transfer src+dst
+		if (supportedFeatures != 0)
+			flags |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT|VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+	}
 
 	if ((supportedFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) != 0)
 		flags |= VK_IMAGE_USAGE_SAMPLED_BIT;
@@ -1958,38 +1977,83 @@
 
 struct ImageFormatPropertyCase
 {
+	typedef tcu::TestStatus (*Function) (Context& context, const VkFormat format, const VkImageType imageType, const VkImageTiling tiling);
+
+	Function		testFunction;
 	VkFormat		format;
 	VkImageType		imageType;
 	VkImageTiling	tiling;
 
-	ImageFormatPropertyCase (VkFormat format_, VkImageType imageType_, VkImageTiling tiling_)
-		: format	(format_)
-		, imageType	(imageType_)
-		, tiling	(tiling_)
+	ImageFormatPropertyCase (Function testFunction_, VkFormat format_, VkImageType imageType_, VkImageTiling tiling_)
+		: testFunction	(testFunction_)
+		, format		(format_)
+		, imageType		(imageType_)
+		, tiling		(tiling_)
 	{}
 
 	ImageFormatPropertyCase (void)
-		: format	(VK_FORMAT_UNDEFINED)
-		, imageType	(VK_IMAGE_TYPE_LAST)
-		, tiling	(VK_IMAGE_TILING_LAST)
+		: testFunction	((Function)DE_NULL)
+		, format		(VK_FORMAT_UNDEFINED)
+		, imageType		(VK_IMAGE_TYPE_LAST)
+		, tiling		(VK_IMAGE_TILING_LAST)
 	{}
 };
 
-tcu::TestStatus imageFormatProperties (Context& context, ImageFormatPropertyCase params)
+tcu::TestStatus execImageFormatTest (Context& context, ImageFormatPropertyCase testCase)
+{
+	return testCase.testFunction(context, testCase.format, testCase.imageType, testCase.tiling);
+}
+
+void createImageFormatTypeTilingTests (tcu::TestCaseGroup* testGroup, ImageFormatPropertyCase params)
+{
+	DE_ASSERT(params.format == VK_FORMAT_UNDEFINED);
+
+	for (deUint32 formatNdx = VK_FORMAT_UNDEFINED+1; formatNdx < VK_CORE_FORMAT_LAST; ++formatNdx)
+	{
+		const VkFormat		format			= (VkFormat)formatNdx;
+		const char* const	enumName		= getFormatName(format);
+		const string		caseName		= de::toLower(string(enumName).substr(10));
+
+		params.format = format;
+
+		addFunctionCase(testGroup, caseName, enumName, execImageFormatTest, params);
+	}
+}
+
+void createImageFormatTypeTests (tcu::TestCaseGroup* testGroup, ImageFormatPropertyCase params)
+{
+	DE_ASSERT(params.tiling == VK_IMAGE_TILING_LAST);
+
+	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "optimal",	"",	createImageFormatTypeTilingTests, ImageFormatPropertyCase(params.testFunction, VK_FORMAT_UNDEFINED, params.imageType, VK_IMAGE_TILING_OPTIMAL)));
+	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "linear",	"",	createImageFormatTypeTilingTests, ImageFormatPropertyCase(params.testFunction, VK_FORMAT_UNDEFINED, params.imageType, VK_IMAGE_TILING_LINEAR)));
+}
+
+void createImageFormatTests (tcu::TestCaseGroup* testGroup, ImageFormatPropertyCase::Function testFunction)
+{
+	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "1d", "", createImageFormatTypeTests, ImageFormatPropertyCase(testFunction, VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_1D, VK_IMAGE_TILING_LAST)));
+	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "2d", "", createImageFormatTypeTests, ImageFormatPropertyCase(testFunction, VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_LAST)));
+	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "3d", "", createImageFormatTypeTests, ImageFormatPropertyCase(testFunction, VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_3D, VK_IMAGE_TILING_LAST)));
+}
+
+tcu::TestStatus imageFormatProperties (Context& context, const VkFormat format, const VkImageType imageType, const VkImageTiling tiling)
 {
 	TestLog&						log					= context.getTestContext().getLog();
-	const VkFormat					format				= params.format;
-	const VkImageType				imageType			= params.imageType;
-	const VkImageTiling				tiling				= params.tiling;
 	const VkPhysicalDeviceFeatures&	deviceFeatures		= context.getDeviceFeatures();
 	const VkPhysicalDeviceLimits&	deviceLimits		= context.getDeviceProperties().limits;
 	const VkFormatProperties		formatProperties	= getPhysicalDeviceFormatProperties(context.getInstanceInterface(), context.getPhysicalDevice(), format);
+	const bool						hasKhrMaintenance1	= isExtensionSupported(context.getDeviceExtensions(), "VK_KHR_maintenance1");
 
 	const VkFormatFeatureFlags		supportedFeatures	= tiling == VK_IMAGE_TILING_LINEAR ? formatProperties.linearTilingFeatures : formatProperties.optimalTilingFeatures;
-	const VkImageUsageFlags			usageFlagSet		= getValidImageUsageFlags(format, supportedFeatures);
+	const VkImageUsageFlags			usageFlagSet		= getValidImageUsageFlags(supportedFeatures, hasKhrMaintenance1);
 
 	tcu::ResultCollector			results				(log, "ERROR: ");
 
+	if (hasKhrMaintenance1 && (supportedFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) != 0)
+	{
+		results.check((supportedFeatures & (VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR | VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR)) != 0,
+					  "A sampled image format must have VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR and VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR format feature flags set");
+	}
+
 	for (VkImageUsageFlags curUsageFlags = 0; curUsageFlags <= usageFlagSet; curUsageFlags++)
 	{
 		if ((curUsageFlags & ~usageFlagSet) != 0 ||
@@ -2104,35 +2168,369 @@
 	return tcu::TestStatus(results.getResult(), results.getMessage());
 }
 
-void createImageFormatTypeTilingTests (tcu::TestCaseGroup* testGroup, ImageFormatPropertyCase params)
-{
-	DE_ASSERT(params.format == VK_FORMAT_UNDEFINED);
+// VK_KHR_get_physical_device_properties2
 
-	for (deUint32 formatNdx = VK_FORMAT_UNDEFINED+1; formatNdx < VK_CORE_FORMAT_LAST; ++formatNdx)
+Move<VkInstance> createInstanceWithExtension (const PlatformInterface& vkp, const char* extensionName)
+{
+	const vector<VkExtensionProperties>	instanceExts	= enumerateInstanceExtensionProperties(vkp, DE_NULL);
+	vector<string>						enabledExts;
+
+	if (!isExtensionSupported(instanceExts, RequiredExtension(extensionName)))
+		TCU_THROW(NotSupportedError, (string(extensionName) + " is not supported").c_str());
+
+	enabledExts.push_back(extensionName);
+
+	return createDefaultInstance(vkp, vector<string>() /* layers */, enabledExts);
+}
+
+tcu::TestStatus deviceFeatures2 (Context& context)
+{
+	const PlatformInterface&		vkp			= context.getPlatformInterface();
+	const Unique<VkInstance>		instance	(createInstanceWithExtension(vkp, "VK_KHR_get_physical_device_properties2"));
+	const InstanceDriver			vki			(vkp, *instance);
+	const vector<VkPhysicalDevice>	devices		= enumeratePhysicalDevices(vki, *instance);
+
+	for (size_t deviceNdx = 0; deviceNdx < devices.size(); ++deviceNdx)
 	{
-		const VkFormat		format			= (VkFormat)formatNdx;
-		const char* const	enumName		= getFormatName(format);
-		const string		caseName		= de::toLower(string(enumName).substr(10));
+		VkPhysicalDeviceFeatures		coreFeatures;
+		VkPhysicalDeviceFeatures2KHR	extFeatures;
 
-		params.format = format;
+		deMemset(&coreFeatures, 0xcd, sizeof(coreFeatures));
+		deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
 
-		addFunctionCase(testGroup, caseName, enumName, imageFormatProperties, params);
+		extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
+		extFeatures.pNext = DE_NULL;
+
+		vki.getPhysicalDeviceFeatures(devices[deviceNdx], &coreFeatures);
+		vki.getPhysicalDeviceFeatures2KHR(devices[deviceNdx], &extFeatures);
+
+		TCU_CHECK(extFeatures.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR);
+		TCU_CHECK(extFeatures.pNext == DE_NULL);
+
+		if (deMemCmp(&coreFeatures, &extFeatures.features, sizeof(VkPhysicalDeviceFeatures)) != 0)
+			TCU_FAIL("Mismatch between features reported by vkGetPhysicalDeviceFeatures and vkGetPhysicalDeviceFeatures2KHR");
 	}
+
+	return tcu::TestStatus::pass("Querying device features succeeded");
 }
 
-void createImageFormatTypeTests (tcu::TestCaseGroup* testGroup, ImageFormatPropertyCase params)
+tcu::TestStatus deviceProperties2 (Context& context)
 {
-	DE_ASSERT(params.tiling == VK_IMAGE_TILING_LAST);
+	const PlatformInterface&		vkp			= context.getPlatformInterface();
+	const Unique<VkInstance>		instance	(createInstanceWithExtension(vkp, "VK_KHR_get_physical_device_properties2"));
+	const InstanceDriver			vki			(vkp, *instance);
+	const vector<VkPhysicalDevice>	devices		= enumeratePhysicalDevices(vki, *instance);
 
-	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "optimal",	"",	createImageFormatTypeTilingTests, ImageFormatPropertyCase(VK_FORMAT_UNDEFINED, params.imageType, VK_IMAGE_TILING_OPTIMAL)));
-	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "linear",	"",	createImageFormatTypeTilingTests, ImageFormatPropertyCase(VK_FORMAT_UNDEFINED, params.imageType, VK_IMAGE_TILING_LINEAR)));
+	for (size_t deviceNdx = 0; deviceNdx < devices.size(); ++deviceNdx)
+	{
+		VkPhysicalDeviceProperties		coreProperties;
+		VkPhysicalDeviceProperties2KHR	extProperties;
+
+		deMemset(&coreProperties, 0xcd, sizeof(VkPhysicalDeviceProperties));
+		deMemset(&extProperties, 0xcd, sizeof(VkPhysicalDeviceProperties2KHR));
+
+		extProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR;
+		extProperties.pNext = DE_NULL;
+
+		vki.getPhysicalDeviceProperties(devices[deviceNdx], &coreProperties);
+		vki.getPhysicalDeviceProperties2KHR(devices[deviceNdx], &extProperties);
+
+		TCU_CHECK(extProperties.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR);
+		TCU_CHECK(extProperties.pNext == DE_NULL);
+
+		if (deMemCmp(&coreProperties, &extProperties.properties, sizeof(VkPhysicalDeviceProperties)) != 0)
+			TCU_FAIL("Mismatch between properties reported by vkGetPhysicalDeviceProperties and vkGetPhysicalDeviceProperties2KHR");
+	}
+
+	return tcu::TestStatus::pass("Querying device properties succeeded");
 }
 
-void createImageFormatTests (tcu::TestCaseGroup* testGroup)
+tcu::TestStatus deviceFormatProperties2 (Context& context)
 {
-	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "1d", "", createImageFormatTypeTests, ImageFormatPropertyCase(VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_1D, VK_IMAGE_TILING_LAST)));
-	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "2d", "", createImageFormatTypeTests, ImageFormatPropertyCase(VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_LAST)));
-	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "3d", "", createImageFormatTypeTests, ImageFormatPropertyCase(VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_3D, VK_IMAGE_TILING_LAST)));
+	const PlatformInterface&		vkp			= context.getPlatformInterface();
+	const Unique<VkInstance>		instance	(createInstanceWithExtension(vkp, "VK_KHR_get_physical_device_properties2"));
+	const InstanceDriver			vki			(vkp, *instance);
+	const vector<VkPhysicalDevice>	devices		= enumeratePhysicalDevices(vki, *instance);
+
+	for (size_t deviceNdx = 0; deviceNdx < devices.size(); ++deviceNdx)
+	{
+		const VkPhysicalDevice	physicalDevice	= devices[deviceNdx];
+
+		for (int formatNdx = 0; formatNdx < VK_CORE_FORMAT_LAST; ++formatNdx)
+		{
+			const VkFormat			format			= (VkFormat)formatNdx;
+			VkFormatProperties		coreProperties;
+			VkFormatProperties2KHR	extProperties;
+
+			deMemset(&coreProperties, 0xcd, sizeof(VkFormatProperties));
+			deMemset(&extProperties, 0xcd, sizeof(VkFormatProperties2KHR));
+
+			extProperties.sType	= VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR;
+			extProperties.pNext = DE_NULL;
+
+			vki.getPhysicalDeviceFormatProperties(physicalDevice, format, &coreProperties);
+			vki.getPhysicalDeviceFormatProperties2KHR(physicalDevice, format, &extProperties);
+
+			TCU_CHECK(extProperties.sType == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR);
+			TCU_CHECK(extProperties.pNext == DE_NULL);
+
+		if (deMemCmp(&coreProperties, &extProperties.formatProperties, sizeof(VkFormatProperties)) != 0)
+			TCU_FAIL("Mismatch between format properties reported by vkGetPhysicalDeviceFormatProperties and vkGetPhysicalDeviceFormatProperties2KHR");
+		}
+	}
+
+	return tcu::TestStatus::pass("Querying device format properties succeeded");
+}
+
+tcu::TestStatus deviceQueueFamilyProperties2 (Context& context)
+{
+	const PlatformInterface&		vkp			= context.getPlatformInterface();
+	const Unique<VkInstance>		instance	(createInstanceWithExtension(vkp, "VK_KHR_get_physical_device_properties2"));
+	const InstanceDriver			vki			(vkp, *instance);
+	const vector<VkPhysicalDevice>	devices		= enumeratePhysicalDevices(vki, *instance);
+
+	for (size_t deviceNdx = 0; deviceNdx < devices.size(); ++deviceNdx)
+	{
+		const VkPhysicalDevice	physicalDevice			= devices[deviceNdx];
+		deUint32				numCoreQueueFamilies	= ~0u;
+		deUint32				numExtQueueFamilies		= ~0u;
+
+		vki.getPhysicalDeviceQueueFamilyProperties(physicalDevice, &numCoreQueueFamilies, DE_NULL);
+		vki.getPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, &numExtQueueFamilies, DE_NULL);
+
+		TCU_CHECK_MSG(numCoreQueueFamilies == numExtQueueFamilies, "Different number of queue family properties reported");
+		TCU_CHECK(numCoreQueueFamilies > 0);
+
+		{
+			std::vector<VkQueueFamilyProperties>		coreProperties	(numCoreQueueFamilies);
+			std::vector<VkQueueFamilyProperties2KHR>	extProperties	(numExtQueueFamilies);
+
+			deMemset(&coreProperties[0], 0xcd, sizeof(VkQueueFamilyProperties)*numCoreQueueFamilies);
+			deMemset(&extProperties[0], 0xcd, sizeof(VkQueueFamilyProperties2KHR)*numExtQueueFamilies);
+
+			for (size_t ndx = 0; ndx < extProperties.size(); ++ndx)
+			{
+				extProperties[ndx].sType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR;
+				extProperties[ndx].pNext = DE_NULL;
+			}
+
+			vki.getPhysicalDeviceQueueFamilyProperties(physicalDevice, &numCoreQueueFamilies, &coreProperties[0]);
+			vki.getPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, &numExtQueueFamilies, &extProperties[0]);
+
+			TCU_CHECK((size_t)numCoreQueueFamilies == coreProperties.size());
+			TCU_CHECK((size_t)numExtQueueFamilies == extProperties.size());
+			DE_ASSERT(numCoreQueueFamilies == numExtQueueFamilies);
+
+			for (size_t ndx = 0; ndx < extProperties.size(); ++ndx)
+			{
+				TCU_CHECK(extProperties[ndx].sType == VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR);
+				TCU_CHECK(extProperties[ndx].pNext == DE_NULL);
+
+				if (deMemCmp(&coreProperties[ndx], &extProperties[ndx].queueFamilyProperties, sizeof(VkQueueFamilyProperties)) != 0)
+					TCU_FAIL("Mismatch between format properties reported by vkGetPhysicalDeviceQueueFamilyProperties and vkGetPhysicalDeviceQueueFamilyProperties2KHR");
+			}
+		}
+	}
+
+	return tcu::TestStatus::pass("Querying device queue family properties succeeded");
+}
+
+tcu::TestStatus deviceMemoryProperties2 (Context& context)
+{
+	const PlatformInterface&		vkp			= context.getPlatformInterface();
+	const Unique<VkInstance>		instance	(createInstanceWithExtension(vkp, "VK_KHR_get_physical_device_properties2"));
+	const InstanceDriver			vki			(vkp, *instance);
+	const vector<VkPhysicalDevice>	devices		= enumeratePhysicalDevices(vki, *instance);
+
+	for (size_t deviceNdx = 0; deviceNdx < devices.size(); ++deviceNdx)
+	{
+		VkPhysicalDeviceMemoryProperties		coreProperties;
+		VkPhysicalDeviceMemoryProperties2KHR	extProperties;
+
+		deMemset(&coreProperties, 0xcd, sizeof(VkPhysicalDeviceMemoryProperties));
+		deMemset(&extProperties, 0xcd, sizeof(VkPhysicalDeviceMemoryProperties2KHR));
+
+		extProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR;
+		extProperties.pNext = DE_NULL;
+
+		vki.getPhysicalDeviceMemoryProperties(devices[deviceNdx], &coreProperties);
+		vki.getPhysicalDeviceMemoryProperties2KHR(devices[deviceNdx], &extProperties);
+
+		TCU_CHECK(extProperties.sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR);
+		TCU_CHECK(extProperties.pNext == DE_NULL);
+
+		if (deMemCmp(&coreProperties, &extProperties.memoryProperties, sizeof(VkPhysicalDeviceMemoryProperties)) != 0)
+			TCU_FAIL("Mismatch between properties reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2KHR");
+	}
+
+	return tcu::TestStatus::pass("Querying device memory properties succeeded");
+}
+
+tcu::TestStatus imageFormatProperties2 (Context& context, const VkFormat format, const VkImageType imageType, const VkImageTiling tiling)
+{
+	TestLog&						log				= context.getTestContext().getLog();
+
+	const PlatformInterface&		vkp				= context.getPlatformInterface();
+	const Unique<VkInstance>		instance		(createInstanceWithExtension(vkp, "VK_KHR_get_physical_device_properties2"));
+	const InstanceDriver			vki				(vkp, *instance);
+	const vector<VkPhysicalDevice>	devices			= enumeratePhysicalDevices(vki, *instance);
+
+	const VkImageUsageFlags			allUsageFlags	= VK_IMAGE_USAGE_TRANSFER_SRC_BIT
+													| VK_IMAGE_USAGE_TRANSFER_DST_BIT
+													| VK_IMAGE_USAGE_SAMPLED_BIT
+													| VK_IMAGE_USAGE_STORAGE_BIT
+													| VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
+													| VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
+													| VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
+													| VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
+	const VkImageCreateFlags		allCreateFlags	= VK_IMAGE_CREATE_SPARSE_BINDING_BIT
+													| VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
+													| VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
+													| VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
+													| VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
+
+	for (size_t deviceNdx = 0; deviceNdx < devices.size(); ++deviceNdx)
+	{
+		const VkPhysicalDevice	physicalDevice	= devices[deviceNdx];
+
+		for (VkImageUsageFlags curUsageFlags = 0; curUsageFlags <= allUsageFlags; curUsageFlags++)
+		{
+			for (VkImageCreateFlags curCreateFlags = 0; curCreateFlags <= allCreateFlags; curCreateFlags++)
+			{
+				const VkPhysicalDeviceImageFormatInfo2KHR	imageFormatInfo	=
+				{
+					VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
+					DE_NULL,
+					format,
+					imageType,
+					tiling,
+					curUsageFlags,
+					curCreateFlags
+				};
+
+				VkImageFormatProperties						coreProperties;
+				VkImageFormatProperties2KHR					extProperties;
+				VkResult									coreResult;
+				VkResult									extResult;
+
+				deMemset(&coreProperties, 0xcd, sizeof(VkImageFormatProperties));
+				deMemset(&extProperties, 0xcd, sizeof(VkImageFormatProperties2KHR));
+
+				extProperties.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR;
+				extProperties.pNext = DE_NULL;
+
+				coreResult	= vki.getPhysicalDeviceImageFormatProperties(physicalDevice, imageFormatInfo.format, imageFormatInfo.type, imageFormatInfo.tiling, imageFormatInfo.usage, imageFormatInfo.flags, &coreProperties);
+				extResult	= vki.getPhysicalDeviceImageFormatProperties2KHR(physicalDevice, &imageFormatInfo, &extProperties);
+
+				TCU_CHECK(extProperties.sType == VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR);
+				TCU_CHECK(extProperties.pNext == DE_NULL);
+
+				if ((coreResult != extResult) ||
+					(deMemCmp(&coreProperties, &extProperties.imageFormatProperties, sizeof(VkImageFormatProperties)) != 0))
+				{
+					log << TestLog::Message << "ERROR: device " << deviceNdx << ": mismatch with query " << imageFormatInfo << TestLog::EndMessage
+						<< TestLog::Message << "vkGetPhysicalDeviceImageFormatProperties() returned " << coreResult << ", " << coreProperties << TestLog::EndMessage
+						<< TestLog::Message << "vkGetPhysicalDeviceImageFormatProperties2KHR() returned " << extResult << ", " << extProperties << TestLog::EndMessage;
+					TCU_FAIL("Mismatch between image format properties reported by vkGetPhysicalDeviceImageFormatProperties and vkGetPhysicalDeviceImageFormatProperties2KHR");
+				}
+			}
+		}
+	}
+
+	return tcu::TestStatus::pass("Querying image format properties succeeded");
+}
+
+tcu::TestStatus sparseImageFormatProperties2 (Context& context, const VkFormat format, const VkImageType imageType, const VkImageTiling tiling)
+{
+	TestLog&						log				= context.getTestContext().getLog();
+
+	const PlatformInterface&		vkp				= context.getPlatformInterface();
+	const Unique<VkInstance>		instance		(createInstanceWithExtension(vkp, "VK_KHR_get_physical_device_properties2"));
+	const InstanceDriver			vki				(vkp, *instance);
+	const vector<VkPhysicalDevice>	devices			= enumeratePhysicalDevices(vki, *instance);
+
+	const VkImageUsageFlags			allUsageFlags	= VK_IMAGE_USAGE_TRANSFER_SRC_BIT
+													| VK_IMAGE_USAGE_TRANSFER_DST_BIT
+													| VK_IMAGE_USAGE_SAMPLED_BIT
+													| VK_IMAGE_USAGE_STORAGE_BIT
+													| VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
+													| VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
+													| VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
+													| VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
+
+	for (size_t deviceNdx = 0; deviceNdx < devices.size(); ++deviceNdx)
+	{
+		const VkPhysicalDevice	physicalDevice	= devices[deviceNdx];
+
+		for (deUint32 sampleCount = 1; sampleCount <= 64; sampleCount++)
+		{
+			const VkSampleCountFlagBits	sampleCountFlagBit	= (VkSampleCountFlagBits)(1u<<sampleCount);
+
+			for (VkImageUsageFlags curUsageFlags = 0; curUsageFlags <= allUsageFlags; curUsageFlags++)
+			{
+				const VkPhysicalDeviceSparseImageFormatInfo2KHR	imageFormatInfo	=
+				{
+					VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
+					DE_NULL,
+					format,
+					imageType,
+					sampleCountFlagBit,
+					curUsageFlags,
+					tiling,
+				};
+
+				deUint32										numCoreProperties	= ~0u;
+				deUint32										numExtProperties	= ~0u;
+
+				// Query count
+				vki.getPhysicalDeviceSparseImageFormatProperties(physicalDevice, imageFormatInfo.format, imageFormatInfo.type, imageFormatInfo.samples, imageFormatInfo.usage, imageFormatInfo.tiling, &numCoreProperties, DE_NULL);
+				vki.getPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, &imageFormatInfo, &numExtProperties, DE_NULL);
+
+				if (numCoreProperties != numExtProperties)
+				{
+					log << TestLog::Message << "ERROR: device " << deviceNdx << ": different number of properties reported for " << imageFormatInfo << TestLog::EndMessage;
+					TCU_FAIL("Mismatch in reported property count");
+				}
+
+				if (numCoreProperties > 0)
+				{
+					std::vector<VkSparseImageFormatProperties>		coreProperties	(numCoreProperties);
+					std::vector<VkSparseImageFormatProperties2KHR>	extProperties	(numExtProperties);
+
+					deMemset(&coreProperties[0], 0xcd, sizeof(VkSparseImageFormatProperties)*numCoreProperties);
+					deMemset(&extProperties[0], 0xcd, sizeof(VkSparseImageFormatProperties2KHR)*numExtProperties);
+
+					for (deUint32 ndx = 0; ndx < numExtProperties; ++ndx)
+					{
+						extProperties[ndx].sType = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR;
+						extProperties[ndx].pNext = DE_NULL;
+					}
+
+					vki.getPhysicalDeviceSparseImageFormatProperties(physicalDevice, imageFormatInfo.format, imageFormatInfo.type, imageFormatInfo.samples, imageFormatInfo.usage, imageFormatInfo.tiling, &numCoreProperties, &coreProperties[0]);
+					vki.getPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, &imageFormatInfo, &numExtProperties, &extProperties[0]);
+
+					TCU_CHECK((size_t)numCoreProperties == coreProperties.size());
+					TCU_CHECK((size_t)numExtProperties == extProperties.size());
+
+					for (deUint32 ndx = 0; ndx < numCoreProperties; ++ndx)
+					{
+						TCU_CHECK(extProperties[ndx].sType == VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR);
+						TCU_CHECK(extProperties[ndx].pNext == DE_NULL);
+
+						if ((deMemCmp(&coreProperties[ndx], &extProperties[ndx].properties, sizeof(VkSparseImageFormatProperties)) != 0))
+						{
+							log << TestLog::Message << "ERROR: device " << deviceNdx << ": mismatch with query " << imageFormatInfo << " property " << ndx << TestLog::EndMessage
+								<< TestLog::Message << "vkGetPhysicalDeviceSparseImageFormatProperties() returned " << coreProperties[ndx] << TestLog::EndMessage
+								<< TestLog::Message << "vkGetPhysicalDeviceSparseImageFormatProperties2KHR() returned " << extProperties[ndx] << TestLog::EndMessage;
+							TCU_FAIL("Mismatch between image format properties reported by vkGetPhysicalDeviceSparseImageFormatProperties and vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return tcu::TestStatus::pass("Querying sparse image format properties succeeded");
 }
 
 } // anonymous
@@ -2165,7 +2563,22 @@
 	}
 
 	infoTests->addChild(createTestGroup(testCtx, "format_properties",		"VkGetPhysicalDeviceFormatProperties() Tests",		createFormatTests));
-	infoTests->addChild(createTestGroup(testCtx, "image_format_properties",	"VkGetPhysicalDeviceImageFormatProperties() Tests",	createImageFormatTests));
+	infoTests->addChild(createTestGroup(testCtx, "image_format_properties",	"VkGetPhysicalDeviceImageFormatProperties() Tests",	createImageFormatTests,	imageFormatProperties));
+
+	{
+		de::MovePtr<tcu::TestCaseGroup> extendedPropertiesTests (new tcu::TestCaseGroup(testCtx, "get_physical_device_properties2", "VK_KHR_get_physical_device_properties2"));
+
+		addFunctionCase(extendedPropertiesTests.get(), "features",					"Extended Device Features",					deviceFeatures2);
+		addFunctionCase(extendedPropertiesTests.get(), "properties",				"Extended Device Properties",				deviceProperties2);
+		addFunctionCase(extendedPropertiesTests.get(), "format_properties",			"Extended Device Format Properties",		deviceFormatProperties2);
+		addFunctionCase(extendedPropertiesTests.get(), "queue_family_properties",	"Extended Device Queue Family Properties",	deviceQueueFamilyProperties2);
+		addFunctionCase(extendedPropertiesTests.get(), "memory_properties",			"Extended Device Memory Properties",		deviceMemoryProperties2);
+
+		infoTests->addChild(extendedPropertiesTests.release());
+	}
+
+	infoTests->addChild(createTestGroup(testCtx, "image_format_properties2",		"VkGetPhysicalDeviceImageFormatProperties2KHR() Tests",			createImageFormatTests, imageFormatProperties2));
+	infoTests->addChild(createTestGroup(testCtx, "sparse_image_format_properties2",	"VkGetPhysicalDeviceSparseImageFormatProperties2KHR() Tests",	createImageFormatTests, sparseImageFormatProperties2));
 
 	return infoTests.release();
 }
diff --git a/external/vulkancts/modules/vulkan/api/vktApiObjectManagementTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiObjectManagementTests.cpp
index cd556d3..253f727 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiObjectManagementTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiObjectManagementTests.cpp
@@ -302,6 +302,11 @@
 	return (value + align - T(1)) & ~(align - T(1));
 }
 
+inline bool hasDeviceExtension (Context& context, const string& name)
+{
+	return de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), name);
+}
+
 VkDeviceSize getPageTableSize (const PlatformMemoryLimits& limits, VkDeviceSize allocationSize)
 {
 	VkDeviceSize	totalSize	= 0;
@@ -317,8 +322,6 @@
 	return totalSize;
 }
 
-
-
 size_t getCurrentSystemMemoryUsage (const AllocationCallbackRecorder& allocRecoder)
 {
 	const size_t						systemAllocationOverhead	= sizeof(void*)*2;
@@ -2519,12 +2522,14 @@
 }
 
 // Determine whether an API call sets the invalid handles to NULL (true) or leaves them undefined or not modified (false)
-template<typename T> inline bool isNullHandleOnAllocationFailure			 (void) { return false; }
-template<>			 inline bool isNullHandleOnAllocationFailure<VkPipeline> (void) { return true;  }
+template<typename T> inline bool isNullHandleOnAllocationFailure				  (Context&)		 { return false; }
+template<>			 inline bool isNullHandleOnAllocationFailure<VkCommandBuffer> (Context& context) { return hasDeviceExtension(context, "VK_KHR_maintenance1"); }
+template<>			 inline bool isNullHandleOnAllocationFailure<VkDescriptorSet> (Context& context) { return hasDeviceExtension(context, "VK_KHR_maintenance1"); }
+template<>			 inline bool isNullHandleOnAllocationFailure<VkPipeline>	  (Context&)		 { return true;  }
 
-template<typename T> inline bool isPooledObject								 (void) { return false; };
-template<>			 inline bool isPooledObject<VkCommandBuffer>			 (void) { return true;  };
-template<>			 inline bool isPooledObject<VkDescriptorSet>			 (void) { return true;  };
+template<typename T> inline bool isPooledObject					 (void) { return false; };
+template<>			 inline bool isPooledObject<VkCommandBuffer> (void) { return true;  };
+template<>			 inline bool isPooledObject<VkDescriptorSet> (void) { return true;  };
 
 template<typename Object>
 tcu::TestStatus allocCallbackFailMultipleObjectsTest (Context& context, typename Object::Parameters params)
@@ -2532,7 +2537,7 @@
 	typedef SharedPtr<Move<typename Object::Type> >	ObjectTypeSp;
 
 	static const deUint32	numObjects			= 4;
-	const bool				expectNullHandles	= isNullHandleOnAllocationFailure<typename Object::Type>();
+	const bool				expectNullHandles	= isNullHandleOnAllocationFailure<typename Object::Type>(context);
 	deUint32				numPassingAllocs	= 0;
 
 	{
diff --git a/external/vulkancts/modules/vulkan/draw/CMakeLists.txt b/external/vulkancts/modules/vulkan/draw/CMakeLists.txt
index e7a06c5..2fc7101 100644
--- a/external/vulkancts/modules/vulkan/draw/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/draw/CMakeLists.txt
@@ -9,8 +9,12 @@
 	vktDrawIndirectTest.cpp
 	vktDrawInstancedTests.hpp
 	vktDrawInstancedTests.cpp
+	vktDrawShaderDrawParametersTests.hpp
+	vktDrawShaderDrawParametersTests.cpp
 	vktDrawSimpleTest.hpp
 	vktDrawSimpleTest.cpp
+	vktDrawNegativeViewportHeightTests.hpp
+	vktDrawNegativeViewportHeightTests.cpp
 	vktDrawBaseClass.hpp
 	vktDrawBaseClass.cpp
 	vktDrawCreateInfoUtil.hpp
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.cpp
new file mode 100644
index 0000000..01f9c10
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.cpp
@@ -0,0 +1,558 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 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 Negative viewport height (part of VK_KHR_maintenance1)
+ *//*--------------------------------------------------------------------*/
+
+#include "vktDrawNegativeViewportHeightTests.hpp"
+#include "vktDrawCreateInfoUtil.hpp"
+#include "vktDrawImageObjectUtil.hpp"
+#include "vktDrawBufferObjectUtil.hpp"
+#include "vktTestGroupUtil.hpp"
+#include "vktTestCaseUtil.hpp"
+
+#include "vkPrograms.hpp"
+#include "vkTypeUtil.hpp"
+#include "vkImageUtil.hpp"
+
+#include "tcuVector.hpp"
+#include "tcuTextureUtil.hpp"
+#include "tcuImageCompare.hpp"
+
+#include "deSharedPtr.hpp"
+
+namespace vkt
+{
+namespace Draw
+{
+namespace
+{
+using namespace vk;
+using tcu::Vec4;
+using de::SharedPtr;
+using de::MovePtr;
+
+enum Constants
+{
+	WIDTH	= 256,
+	HEIGHT	= WIDTH/2,
+};
+
+struct TestParams
+{
+	VkFrontFace				frontFace;
+	VkCullModeFlagBits		cullMode;
+};
+
+class NegativeViewportHeightTestInstance : public TestInstance
+{
+public:
+									NegativeViewportHeightTestInstance	(Context& context, const TestParams& params);
+	tcu::TestStatus					iterate								(void);
+	tcu::ConstPixelBufferAccess		draw								(const VkViewport viewport);
+	MovePtr<tcu::TextureLevel>		generateReferenceImage				(void) const;
+	bool							isCulled							(const VkFrontFace triangleFace) const;
+
+private:
+	const TestParams				m_params;
+	const VkFormat					m_colorAttachmentFormat;
+	SharedPtr<Image>				m_colorTargetImage;
+	Move<VkImageView>				m_colorTargetView;
+	SharedPtr<Buffer>				m_vertexBuffer;
+	Move<VkRenderPass>				m_renderPass;
+	Move<VkFramebuffer>				m_framebuffer;
+	Move<VkPipelineLayout>			m_pipelineLayout;
+	Move<VkPipeline>				m_pipeline;
+};
+
+NegativeViewportHeightTestInstance::NegativeViewportHeightTestInstance (Context& context, const TestParams& params)
+	: TestInstance				(context)
+	, m_params					(params)
+	, m_colorAttachmentFormat	(VK_FORMAT_R8G8B8A8_UNORM)
+{
+	const DeviceInterface&	vk		= m_context.getDeviceInterface();
+	const VkDevice			device	= m_context.getDevice();
+
+	// Vertex data
+	{
+		std::vector<Vec4> vertexData;
+
+		// CCW triangle
+		vertexData.push_back(Vec4(-0.8f, -0.6f, 0.0f, 1.0f));	//  0-----2
+		vertexData.push_back(Vec4(-0.8f,  0.6f, 0.0f, 1.0f));	//   |  /
+		vertexData.push_back(Vec4(-0.2f, -0.6f, 0.0f, 1.0f));	//  1|/
+
+		// CW triangle
+		vertexData.push_back(Vec4( 0.2f, -0.6f, 0.0f, 1.0f));	//  0-----1
+		vertexData.push_back(Vec4( 0.8f, -0.6f, 0.0f, 1.0f));	//    \  |
+		vertexData.push_back(Vec4( 0.8f,  0.6f, 0.0f, 1.0f));	//      \|2
+
+		const VkDeviceSize dataSize = vertexData.size() * sizeof(Vec4);
+		m_vertexBuffer = Buffer::createAndAlloc(vk, device, BufferCreateInfo(dataSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT),
+												m_context.getDefaultAllocator(), MemoryRequirement::HostVisible);
+
+		deMemcpy(m_vertexBuffer->getBoundMemory().getHostPtr(), &vertexData[0], static_cast<std::size_t>(dataSize));
+		flushMappedMemoryRange(vk, device, m_vertexBuffer->getBoundMemory().getMemory(), m_vertexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
+	}
+
+	// Render pass
+	{
+		const VkExtent3D		targetImageExtent		= { WIDTH, HEIGHT, 1 };
+		const VkImageUsageFlags	targetImageUsageFlags	= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+
+		const ImageCreateInfo	targetImageCreateInfo(
+			VK_IMAGE_TYPE_2D,						// imageType,
+			m_colorAttachmentFormat,				// format,
+			targetImageExtent,						// extent,
+			1u,										// mipLevels,
+			1u,										// arrayLayers,
+			VK_SAMPLE_COUNT_1_BIT,					// samples,
+			VK_IMAGE_TILING_OPTIMAL,				// tiling,
+			targetImageUsageFlags);					// usage,
+
+		m_colorTargetImage = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator());
+
+		RenderPassCreateInfo	renderPassCreateInfo;
+		renderPassCreateInfo.addAttachment(AttachmentDescription(
+			m_colorAttachmentFormat,				// format
+			VK_SAMPLE_COUNT_1_BIT,					// samples
+			VK_ATTACHMENT_LOAD_OP_LOAD,				// loadOp
+			VK_ATTACHMENT_STORE_OP_STORE,			// storeOp
+			VK_ATTACHMENT_LOAD_OP_DONT_CARE,		// stencilLoadOp
+			VK_ATTACHMENT_STORE_OP_DONT_CARE,		// stencilStoreOp
+			VK_IMAGE_LAYOUT_GENERAL,				// initialLayout
+			VK_IMAGE_LAYOUT_GENERAL));				// finalLayout
+
+		const VkAttachmentReference colorAttachmentReference =
+		{
+			0u,
+			VK_IMAGE_LAYOUT_GENERAL
+		};
+
+		renderPassCreateInfo.addSubpass(SubpassDescription(
+			VK_PIPELINE_BIND_POINT_GRAPHICS,		// pipelineBindPoint
+			(VkSubpassDescriptionFlags)0,			// flags
+			0u,										// inputAttachmentCount
+			DE_NULL,								// inputAttachments
+			1u,										// colorAttachmentCount
+			&colorAttachmentReference,				// colorAttachments
+			DE_NULL,								// resolveAttachments
+			AttachmentReference(),					// depthStencilAttachment
+			0u,										// preserveAttachmentCount
+			DE_NULL));								// preserveAttachments
+
+		m_renderPass = createRenderPass(vk, device, &renderPassCreateInfo);
+	}
+
+	// Framebuffer
+	{
+		const ImageViewCreateInfo colorTargetViewInfo (m_colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, m_colorAttachmentFormat);
+		m_colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
+
+		std::vector<VkImageView> colorAttachments(1);
+		colorAttachments[0] = *m_colorTargetView;
+
+		const FramebufferCreateInfo	framebufferCreateInfo(*m_renderPass, colorAttachments, WIDTH, HEIGHT, 1);
+		m_framebuffer = createFramebuffer(vk, device, &framebufferCreateInfo);
+	}
+
+	// Vertex input
+
+	const VkVertexInputBindingDescription		vertexInputBindingDescription =
+	{
+		0u,										// uint32_t             binding;
+		sizeof(Vec4),							// uint32_t             stride;
+		VK_VERTEX_INPUT_RATE_VERTEX,			// VkVertexInputRate    inputRate;
+	};
+
+	const VkVertexInputAttributeDescription		vertexInputAttributeDescription =
+	{
+		0u,										// uint32_t    location;
+		0u,										// uint32_t    binding;
+		VK_FORMAT_R32G32B32A32_SFLOAT,			// VkFormat    format;
+		0u										// uint32_t    offset;
+	};
+
+	const PipelineCreateInfo::VertexInputState	vertexInputState = PipelineCreateInfo::VertexInputState(1, &vertexInputBindingDescription,
+																										1, &vertexInputAttributeDescription);
+
+	// Graphics pipeline
+
+	const VkRect2D scissor =
+	{
+		{ 0,		0		},		// x, y
+		{ WIDTH,	HEIGHT	},		// width, height
+	};
+
+	std::vector<VkDynamicState>		dynamicStates;
+	dynamicStates.push_back(VK_DYNAMIC_STATE_VIEWPORT);
+
+	const Unique<VkShaderModule>	vertexModule	(createShaderModule(vk, device, m_context.getBinaryCollection().get("vert"), 0));
+	const Unique<VkShaderModule>	fragmentModule	(createShaderModule(vk, device, m_context.getBinaryCollection().get("frag"), 0));
+
+	const PipelineLayoutCreateInfo	pipelineLayoutCreateInfo;
+	m_pipelineLayout = createPipelineLayout(vk, device, &pipelineLayoutCreateInfo);
+
+	const PipelineCreateInfo::ColorBlendState::Attachment colorBlendAttachmentState;
+
+	PipelineCreateInfo pipelineCreateInfo(*m_pipelineLayout, *m_renderPass, 0, (VkPipelineCreateFlags)0);
+	pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*vertexModule,   "main", VK_SHADER_STAGE_VERTEX_BIT));
+	pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*fragmentModule, "main", VK_SHADER_STAGE_FRAGMENT_BIT));
+	pipelineCreateInfo.addState (PipelineCreateInfo::VertexInputState	(vertexInputState));
+	pipelineCreateInfo.addState (PipelineCreateInfo::InputAssemblerState(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST));
+	pipelineCreateInfo.addState (PipelineCreateInfo::ColorBlendState	(1, &colorBlendAttachmentState));
+	pipelineCreateInfo.addState (PipelineCreateInfo::ViewportState		(1, std::vector<VkViewport>(), std::vector<VkRect2D>(1, scissor)));
+	pipelineCreateInfo.addState (PipelineCreateInfo::DepthStencilState	());
+	pipelineCreateInfo.addState (PipelineCreateInfo::RasterizerState	(
+		VK_FALSE,					// depthClampEnable
+		VK_FALSE,					// rasterizerDiscardEnable
+		VK_POLYGON_MODE_FILL,		// polygonMode
+		m_params.cullMode,			// cullMode
+		m_params.frontFace,			// frontFace
+		VK_FALSE,					// depthBiasEnable
+		0.0f,						// depthBiasConstantFactor
+		0.0f,						// depthBiasClamp
+		0.0f,						// depthBiasSlopeFactor
+		1.0f));						// lineWidth
+	pipelineCreateInfo.addState (PipelineCreateInfo::MultiSampleState	());
+	pipelineCreateInfo.addState (PipelineCreateInfo::DynamicState		(dynamicStates));
+
+	m_pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
+}
+
+tcu::ConstPixelBufferAccess NegativeViewportHeightTestInstance::draw (const VkViewport viewport)
+{
+	const DeviceInterface&	vk					= m_context.getDeviceInterface();
+	const VkDevice			device				= m_context.getDevice();
+	const VkQueue			queue				= m_context.getUniversalQueue();
+	const deUint32			queueFamilyIndex	= m_context.getUniversalQueueFamilyIndex();
+
+	// Command buffer
+
+	const CmdPoolCreateInfo		cmdPoolCreateInfo	(queueFamilyIndex);
+	const Unique<VkCommandPool>	cmdPool				(createCommandPool(vk, device, &cmdPoolCreateInfo));
+
+	const VkCommandBufferAllocateInfo cmdBufferAllocateInfo =
+	{
+		VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,		// VkStructureType			sType;
+		DE_NULL,											// const void*				pNext;
+		*cmdPool,											// VkCommandPool			commandPool;
+		VK_COMMAND_BUFFER_LEVEL_PRIMARY,					// VkCommandBufferLevel		level;
+		1u,													// deUint32					bufferCount;
+	};
+	const Unique<VkCommandBuffer> cmdBuffer(allocateCommandBuffer(vk, device, &cmdBufferAllocateInfo));
+
+	// Draw
+
+	{
+		const CmdBufferBeginInfo beginInfo;
+		vk.beginCommandBuffer(*cmdBuffer, &beginInfo);
+	}
+
+	vk.cmdSetViewport(*cmdBuffer, 0u, 1u, &viewport);
+
+	{
+		const VkClearColorValue		clearColor			= makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f).color;
+		const ImageSubresourceRange subresourceRange	(VK_IMAGE_ASPECT_COLOR_BIT);
+
+		initialTransitionColor2DImage(vk, *cmdBuffer, m_colorTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL);
+		vk.cmdClearColorImage(*cmdBuffer, m_colorTargetImage->object(), VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
+	}
+	{
+		const VkMemoryBarrier memBarrier =
+		{
+			VK_STRUCTURE_TYPE_MEMORY_BARRIER,												// VkStructureType    sType;
+			DE_NULL,																		// const void*        pNext;
+			VK_ACCESS_TRANSFER_WRITE_BIT,													// VkAccessFlags      srcAccessMask;
+			VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT		// VkAccessFlags      dstAccessMask;
+		};
+
+		vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, 0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
+	}
+	{
+		const VkRect2D				renderArea		= { { 0, 0 }, { WIDTH, HEIGHT } };
+		const RenderPassBeginInfo	renderPassBegin	(*m_renderPass, *m_framebuffer, renderArea);
+
+		vk.cmdBeginRenderPass(*cmdBuffer, &renderPassBegin, VK_SUBPASS_CONTENTS_INLINE);
+	}
+	{
+		const VkDeviceSize	offset	= 0;
+		const VkBuffer		buffer	= m_vertexBuffer->object();
+
+		vk.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &buffer, &offset);
+	}
+
+	vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
+	vk.cmdDraw(*cmdBuffer, 6, 1, 0, 0);
+	vk.cmdEndRenderPass(*cmdBuffer);
+	vk.endCommandBuffer(*cmdBuffer);
+
+	// Submit
+	{
+		const VkFenceCreateInfo fenceInfo	=
+		{
+			VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,		// VkStructureType       sType;
+			DE_NULL,									// const void*           pNext;
+			(VkFenceCreateFlags)0,						// VkFenceCreateFlags    flags;
+		};
+		const Unique<VkFence>	fence		(createFence(vk, device, &fenceInfo));
+		const VkSubmitInfo		submitInfo	=
+		{
+			VK_STRUCTURE_TYPE_SUBMIT_INFO,				// VkStructureType                sType;
+			DE_NULL,									// const void*                    pNext;
+			0,											// uint32_t                       waitSemaphoreCount;
+			DE_NULL,									// const VkSemaphore*             pWaitSemaphores;
+			(const VkPipelineStageFlags*)DE_NULL,		// const VkPipelineStageFlags*    pWaitDstStageMask;
+			1,											// uint32_t                       commandBufferCount;
+			&cmdBuffer.get(),							// const VkCommandBuffer*         pCommandBuffers;
+			0,											// uint32_t                       signalSemaphoreCount;
+			DE_NULL										// const VkSemaphore*             pSignalSemaphores;
+		};
+
+		VK_CHECK(vk.queueSubmit(queue, 1, &submitInfo, *fence));
+		VK_CHECK(vk.waitForFences(device, 1u, &fence.get(), VK_TRUE, ~0ull));
+	}
+
+	// Get result
+	{
+		const VkOffset3D zeroOffset = { 0, 0, 0 };
+		return m_colorTargetImage->readSurface(queue, m_context.getDefaultAllocator(), VK_IMAGE_LAYOUT_GENERAL, zeroOffset, WIDTH, HEIGHT, VK_IMAGE_ASPECT_COLOR_BIT);
+	}
+}
+
+//! Determine if a triangle with triangleFace orientation will be culled or not
+bool NegativeViewportHeightTestInstance::isCulled (const VkFrontFace triangleFace) const
+{
+	const bool isFrontFacing = (triangleFace == m_params.frontFace);
+
+	if (m_params.cullMode == VK_CULL_MODE_FRONT_BIT && isFrontFacing)
+		return true;
+	if (m_params.cullMode == VK_CULL_MODE_BACK_BIT  && !isFrontFacing)
+		return true;
+
+	return m_params.cullMode == VK_CULL_MODE_FRONT_AND_BACK;
+}
+
+MovePtr<tcu::TextureLevel> NegativeViewportHeightTestInstance::generateReferenceImage (void) const
+{
+	DE_ASSERT(HEIGHT == WIDTH/2);
+
+	MovePtr<tcu::TextureLevel>		image	(new tcu::TextureLevel(mapVkFormat(m_colorAttachmentFormat), WIDTH, HEIGHT));
+	const tcu::PixelBufferAccess	access	(image->getAccess());
+	const Vec4						black	(0.0f, 0.0f, 0.0f, 1.0f);
+	const Vec4						white	(1.0f);
+	const Vec4						gray	(0.5f, 0.5f, 0.5f, 1.0f);
+
+	tcu::clear(access, black);
+
+	const int p1 =      static_cast<int>(static_cast<float>(HEIGHT) * (1.0f - 0.6f) / 2.0f);
+	const int p2 = p1 + static_cast<int>(static_cast<float>(HEIGHT) * (2.0f * 0.6f) / 2.0f);
+
+	// left triangle (CCW -> CW after y-flip)
+	if (!isCulled(VK_FRONT_FACE_CLOCKWISE))
+	{
+		const Vec4& color = (m_params.frontFace == VK_FRONT_FACE_CLOCKWISE ? white : gray);
+
+		for (int y = p1; y <= p2; ++y)
+		for (int x = p1; x <  y;  ++x)
+			access.setPixel(color, x, y);
+	}
+
+	// right triangle (CW -> CCW after y-flip)
+	if (!isCulled(VK_FRONT_FACE_COUNTER_CLOCKWISE))
+	{
+		const Vec4& color = (m_params.frontFace == VK_FRONT_FACE_COUNTER_CLOCKWISE ? white : gray);
+
+		for (int y = p1;        y <= p2;          ++y)
+		for (int x = WIDTH - y; x <  p2 + HEIGHT; ++x)
+			access.setPixel(color, x, y);
+	}
+
+	return image;
+}
+
+std::string getCullModeStr (const VkCullModeFlagBits cullMode)
+{
+	// Cull mode flags are a bit special, because there's a meaning to 0 and or'ed flags.
+	// The function getCullModeFlagsStr() doesn't work too well in this case.
+
+	switch (cullMode)
+	{
+		case VK_CULL_MODE_NONE:				return "VK_CULL_MODE_NONE";
+		case VK_CULL_MODE_FRONT_BIT:		return "VK_CULL_MODE_FRONT_BIT";
+		case VK_CULL_MODE_BACK_BIT:			return "VK_CULL_MODE_BACK_BIT";
+		case VK_CULL_MODE_FRONT_AND_BACK:	return "VK_CULL_MODE_FRONT_AND_BACK";
+
+		default:
+			DE_ASSERT(0);
+			return std::string();
+	}
+}
+
+tcu::TestStatus NegativeViewportHeightTestInstance::iterate (void)
+{
+	// Check requirements
+
+	if (!de::contains(m_context.getDeviceExtensions().begin(), m_context.getDeviceExtensions().end(), std::string("VK_KHR_maintenance1")))
+		TCU_THROW(NotSupportedError, "Missing extension: VK_KHR_maintenance1");
+
+	// Set up the viewport and draw
+
+	const VkViewport viewport =
+	{
+		0.0f,							// float    x;
+		static_cast<float>(HEIGHT),		// float    y;
+		static_cast<float>(WIDTH),		// float    width;
+		-static_cast<float>(HEIGHT),	// float    height;
+		0.0f,							// float    minDepth;
+		1.0f,							// float    maxDepth;
+	};
+
+	const tcu::ConstPixelBufferAccess	resultImage	= draw(viewport);
+
+	// Verify the results
+
+	tcu::TestLog&				log				= m_context.getTestContext().getLog();
+	MovePtr<tcu::TextureLevel>	referenceImage	= generateReferenceImage();
+
+	log << tcu::TestLog::Message
+		<< "Drawing two triangles with negative viewport height, which will cause a y-flip. This changes the sign of the triangle's area."
+		<< tcu::TestLog::EndMessage;
+	log << tcu::TestLog::Message
+		<< "After the flip, the triangle on the left is CW and the triangle on the right is CCW. Right angles of the both triangles should be at the bottom of the image."
+		<< " Front face is white, back face is gray."
+		<< tcu::TestLog::EndMessage;
+	log << tcu::TestLog::Message
+		<< "Front face: " << getFrontFaceName(m_params.frontFace) << "\n"
+		<< "Cull mode: "  << getCullModeStr  (m_params.cullMode)  << "\n"
+		<< tcu::TestLog::EndMessage;
+
+	if (!tcu::fuzzyCompare(log, "Image compare", "Image compare", referenceImage->getAccess(), resultImage, 0.02f, tcu::COMPARE_LOG_RESULT))
+		return tcu::TestStatus::fail("Rendered image is incorrect");
+	else
+		return tcu::TestStatus::pass("Pass");
+}
+
+class NegativeViewportHeightTest : public TestCase
+{
+public:
+	NegativeViewportHeightTest (tcu::TestContext& testCtx, const std::string& name, const std::string& description, const TestParams& params)
+		: TestCase	(testCtx, name, description)
+		, m_params	(params)
+	{
+	}
+
+	void initPrograms (SourceCollections& programCollection) const
+	{
+		// Vertex shader
+		{
+			std::ostringstream src;
+			src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+				<< "\n"
+				<< "layout(location = 0) in vec4 in_position;\n"
+				<< "\n"
+				<< "out gl_PerVertex {\n"
+				<< "    vec4  gl_Position;\n"
+				<< "};\n"
+				<< "\n"
+				<< "void main(void)\n"
+				<< "{\n"
+				<< "    gl_Position = in_position;\n"
+				<< "}\n";
+
+			programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+		}
+
+		// Fragment shader
+		{
+			std::ostringstream src;
+			src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+				<< "\n"
+				<< "layout(location = 0) out vec4 out_color;\n"
+				<< "\n"
+				<< "void main(void)\n"
+				<< "{\n"
+				<< "    if (gl_FrontFacing)\n"
+				<< "        out_color = vec4(1.0);\n"
+				<< "    else\n"
+				<< "        out_color = vec4(vec3(0.5), 1.0);\n"
+				<< "}\n";
+
+			programCollection.glslSources.add("frag") << glu::FragmentSource(src.str());
+		}
+	}
+
+	virtual TestInstance* createInstance (Context& context) const
+	{
+		return new NegativeViewportHeightTestInstance(context, m_params);
+	}
+
+private:
+	const TestParams	m_params;
+};
+
+void populateTestGroup (tcu::TestCaseGroup* testGroup)
+{
+	const struct
+	{
+		const char* const	name;
+		VkFrontFace			frontFace;
+	} frontFace[] =
+	{
+		{ "front_ccw",	VK_FRONT_FACE_COUNTER_CLOCKWISE	},
+		{ "front_cw",	VK_FRONT_FACE_CLOCKWISE			},
+	};
+
+	const struct
+	{
+		const char* const	name;
+		VkCullModeFlagBits	cullMode;
+	} cullMode[] =
+	{
+		{ "cull_none",	VK_CULL_MODE_NONE			},
+		{ "cull_front",	VK_CULL_MODE_FRONT_BIT		},
+		{ "cull_back",	VK_CULL_MODE_BACK_BIT		},
+		{ "cull_both",	VK_CULL_MODE_FRONT_AND_BACK	},
+	};
+
+	for (int ndxFrontFace = 0; ndxFrontFace < DE_LENGTH_OF_ARRAY(frontFace); ++ndxFrontFace)
+	for (int ndxCullMode  = 0; ndxCullMode  < DE_LENGTH_OF_ARRAY(cullMode);  ++ndxCullMode)
+	{
+		const TestParams params =
+		{
+			frontFace[ndxFrontFace].frontFace,
+			cullMode[ndxCullMode].cullMode,
+		};
+		std::ostringstream	name;
+		name << frontFace[ndxFrontFace].name << "_" << cullMode[ndxCullMode].name;
+
+		testGroup->addChild(new NegativeViewportHeightTest(testGroup->getTestContext(), name.str(), "", params));
+	}
+}
+
+}	// anonymous
+
+tcu::TestCaseGroup*	createNegativeViewportHeightTests (tcu::TestContext& testCtx)
+{
+	return createTestGroup(testCtx, "negative_viewport_height", "Negative viewport height (VK_KHR_maintenance1)", populateTestGroup);
+}
+
+}	// Draw
+}	// vkt
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.hpp b/external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.hpp
new file mode 100644
index 0000000..9f56b35
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.hpp
@@ -0,0 +1,39 @@
+#ifndef _VKTDRAWNEGATIVEVIEWPORTHEIGHTTESTS_HPP
+#define _VKTDRAWNEGATIVEVIEWPORTHEIGHTTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 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 Negative viewport height (part of VK_KHR_maintenance1)
+ *//*--------------------------------------------------------------------*/
+
+#include "vkDefs.hpp"
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace Draw
+{
+
+tcu::TestCaseGroup*	createNegativeViewportHeightTests (tcu::TestContext& testCtx);
+
+}	// Draw
+}	// vkt
+
+#endif // _VKTDRAWNEGATIVEVIEWPORTHEIGHTTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.cpp
new file mode 100644
index 0000000..53bb063
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.cpp
@@ -0,0 +1,405 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 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 VK_KHR_shader_draw_parameters tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktDrawShaderDrawParametersTests.hpp"
+
+#include "vktTestCaseUtil.hpp"
+#include "vktDrawTestCaseUtil.hpp"
+#include "vktDrawBaseClass.hpp"
+
+#include "vkQueryUtil.hpp"
+
+#include "tcuTestLog.hpp"
+#include "tcuImageCompare.hpp"
+#include "tcuTextureUtil.hpp"
+
+namespace vkt
+{
+namespace Draw
+{
+namespace
+{
+
+enum TestFlagBits
+{
+	TEST_FLAG_INSTANCED			= 1u << 0,
+	TEST_FLAG_INDEXED			= 1u << 1,
+	TEST_FLAG_INDIRECT			= 1u << 2,
+	TEST_FLAG_MULTIDRAW			= 1u << 3,	//!< multiDrawIndirect
+	TEST_FLAG_FIRST_INSTANCE	= 1u << 4,	//!< drawIndirectFirstInstance
+};
+typedef deUint32 TestFlags;
+
+struct FlagsTestSpec : public TestSpecBase
+{
+	TestFlags	flags;
+};
+
+inline FlagsTestSpec addFlags (FlagsTestSpec spec, const TestFlags flags)
+{
+	spec.flags |= flags;
+	return spec;
+}
+
+enum Constants
+{
+	// \note Data layout in buffers (junk data and good data is intertwined).
+	//       Values are largely arbitrary, but we try to avoid "nice" numbers to make sure the test doesn't pass by accident.
+	NUM_VERTICES			= 4,	//!< number of consecutive good vertices
+	NDX_FIRST_VERTEX		= 2,	//!< index of first good vertex data
+	NDX_SECOND_VERTEX		= 9,	//!< index of second good vertex data
+	NDX_FIRST_INDEX			= 11,	//!< index of a first good index (in index data)
+	NDX_SECOND_INDEX		= 17,	//!< index of a second good index
+	OFFSET_FIRST_INDEX		= 1,	//!< offset added to the first index
+	OFFSET_SECOND_INDEX		= 4,	//!< offset added to the second index
+	MAX_INSTANCE_COUNT		= 3,	//!< max number of draw instances
+	MAX_INDIRECT_DRAW_COUNT	= 3,	//!< max drawCount of indirect calls
+};
+
+class DrawTest : public DrawTestsBaseClass
+{
+public:
+	typedef FlagsTestSpec	TestSpec;
+							DrawTest				(Context &context, TestSpec testSpec);
+	tcu::TestStatus			iterate					(void);
+
+private:
+	template<typename T, std::size_t N>
+	void					setIndirectCommand		(const T (&pCmdData)[N]);
+
+	void					drawReferenceImage		(const tcu::PixelBufferAccess& refImage) const;
+
+	bool					isInstanced				(void) const { return (m_flags & TEST_FLAG_INSTANCED)		!= 0; }
+	bool					isIndexed				(void) const { return (m_flags & TEST_FLAG_INDEXED)			!= 0; }
+	bool					isIndirect				(void) const { return (m_flags & TEST_FLAG_INDIRECT)		!= 0; }
+	bool					isMultiDraw				(void) const { return (m_flags & TEST_FLAG_MULTIDRAW)		!= 0; }
+	bool					isFirstInstance			(void) const { return (m_flags & TEST_FLAG_FIRST_INSTANCE)	!= 0; }
+
+	const TestFlags			m_flags;
+	de::SharedPtr<Buffer>	m_indexBuffer;
+	de::SharedPtr<Buffer>	m_indirectBuffer;
+};
+
+DrawTest::DrawTest (Context &context, TestSpec testSpec)
+	: DrawTestsBaseClass(context, testSpec.shaders[glu::SHADERTYPE_VERTEX], testSpec.shaders[glu::SHADERTYPE_FRAGMENT], testSpec.topology)
+	, m_flags			(testSpec.flags)
+{
+	DE_ASSERT(m_topology == vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP);
+	DE_ASSERT(!isMultiDraw()     || isIndirect());
+	DE_ASSERT(!isFirstInstance() || (isIndirect() && isInstanced()));
+
+	// Requirements
+	{
+		if (!de::contains(m_context.getDeviceExtensions().begin(), m_context.getDeviceExtensions().end(), std::string("VK_KHR_shader_draw_parameters")))
+			TCU_THROW(NotSupportedError, "Missing extension: VK_KHR_shader_draw_parameters");
+
+		if (isMultiDraw() && !m_context.getDeviceFeatures().multiDrawIndirect)
+			TCU_THROW(NotSupportedError, "Missing feature: multiDrawIndirect");
+
+		if (isFirstInstance() && !m_context.getDeviceFeatures().drawIndirectFirstInstance)
+			TCU_THROW(NotSupportedError, "Missing feature: drawIndirectFirstInstance");
+	}
+
+	// Vertex data
+	{
+		int refIndex = NDX_FIRST_VERTEX - OFFSET_FIRST_INDEX;
+
+		m_data.push_back(VertexElementData(tcu::Vec4( 1.0f, -1.0f, 1.0f, 1.0f), tcu::Vec4(1.0f), -1));
+		m_data.push_back(VertexElementData(tcu::Vec4(-1.0f,  1.0f, 1.0f, 1.0f), tcu::Vec4(1.0f), -1));
+
+		if (!isIndexed())
+			refIndex = 0;
+
+		m_data.push_back(VertexElementData(tcu::Vec4(-0.3f,	-0.3f, 1.0f, 1.0f), tcu::Vec4(1.0f), refIndex++));
+		m_data.push_back(VertexElementData(tcu::Vec4(-0.3f,	 0.3f, 1.0f, 1.0f), tcu::Vec4(1.0f), refIndex++));
+		m_data.push_back(VertexElementData(tcu::Vec4( 0.3f,	-0.3f, 1.0f, 1.0f), tcu::Vec4(1.0f), refIndex++));
+		m_data.push_back(VertexElementData(tcu::Vec4( 0.3f,	 0.3f, 1.0f, 1.0f), tcu::Vec4(1.0f), refIndex++));
+
+		m_data.push_back(VertexElementData(tcu::Vec4(-1.0f,  1.0f, 1.0f, 1.0f), tcu::Vec4(1.0f), -1));
+		m_data.push_back(VertexElementData(tcu::Vec4( 1.0f, -1.0f, 1.0f, 1.0f), tcu::Vec4(1.0f), -1));
+		m_data.push_back(VertexElementData(tcu::Vec4(-1.0f, -1.0f, 1.0f, 1.0f), tcu::Vec4(1.0f), -1));
+
+		if (!isIndexed())
+			refIndex = 0;
+
+		m_data.push_back(VertexElementData(tcu::Vec4(-0.3f,	-0.3f, 1.0f, 1.0f), tcu::Vec4(1.0f), refIndex++));
+		m_data.push_back(VertexElementData(tcu::Vec4(-0.3f,	 0.3f, 1.0f, 1.0f), tcu::Vec4(1.0f), refIndex++));
+		m_data.push_back(VertexElementData(tcu::Vec4( 0.3f,	-0.3f, 1.0f, 1.0f), tcu::Vec4(1.0f), refIndex++));
+		m_data.push_back(VertexElementData(tcu::Vec4( 0.3f,	 0.3f, 1.0f, 1.0f), tcu::Vec4(1.0f), refIndex++));
+
+		m_data.push_back(VertexElementData(tcu::Vec4(-1.0f,  1.0f, 1.0f, 1.0f), tcu::Vec4(1.0f), -1));
+		m_data.push_back(VertexElementData(tcu::Vec4( 1.0f, -1.0f, 1.0f, 1.0f), tcu::Vec4(1.0f), -1));
+
+		// Make sure constants are up to date
+		DE_ASSERT(m_data.size() == NDX_SECOND_VERTEX + NUM_VERTICES + 2);
+		DE_ASSERT(NDX_SECOND_VERTEX - NDX_FIRST_VERTEX - NUM_VERTICES == 3);
+	}
+
+	if (isIndirect())
+	{
+		const std::size_t	indirectBufferSize	= MAX_INDIRECT_DRAW_COUNT * 32;	// space for COUNT commands plus some gratuitous padding
+							m_indirectBuffer	= Buffer::createAndAlloc(m_vk, m_context.getDevice(), BufferCreateInfo(indirectBufferSize, vk::VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT),
+												  m_context.getDefaultAllocator(), vk::MemoryRequirement::HostVisible);
+
+		deMemset(m_indirectBuffer->getBoundMemory().getHostPtr(), 0, indirectBufferSize);
+		vk::flushMappedMemoryRange(m_vk, m_context.getDevice(), m_indirectBuffer->getBoundMemory().getMemory(), m_indirectBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
+	}
+
+	if (isIndexed())
+	{
+		DE_ASSERT(NDX_FIRST_INDEX + NUM_VERTICES <= NDX_SECOND_INDEX);
+		const std::size_t	indexBufferSize	= sizeof(deUint32) * (NDX_SECOND_INDEX + NUM_VERTICES);
+							m_indexBuffer	= Buffer::createAndAlloc(m_vk, m_context.getDevice(), BufferCreateInfo(indexBufferSize, vk::VK_BUFFER_USAGE_INDEX_BUFFER_BIT),
+																	 m_context.getDefaultAllocator(), vk::MemoryRequirement::HostVisible);
+		deUint32*			indices			= static_cast<deUint32*>(m_indexBuffer->getBoundMemory().getHostPtr());
+
+		deMemset(indices, 0, indexBufferSize);
+
+		for (int i = 0; i < NUM_VERTICES; i++)
+		{
+			indices[NDX_FIRST_INDEX  + i] = static_cast<deUint32>(NDX_FIRST_VERTEX  + i) - OFFSET_FIRST_INDEX;
+			indices[NDX_SECOND_INDEX + i] = static_cast<deUint32>(NDX_SECOND_VERTEX + i) - OFFSET_SECOND_INDEX;
+		}
+
+		vk::flushMappedMemoryRange(m_vk, m_context.getDevice(), m_indexBuffer->getBoundMemory().getMemory(), m_indexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
+	}
+
+	initialize();
+}
+
+template<typename T, std::size_t N>
+void DrawTest::setIndirectCommand (const T (&pCmdData)[N])
+{
+	DE_ASSERT(N != 0 && N <= MAX_INDIRECT_DRAW_COUNT);
+
+	const std::size_t dataSize = N * sizeof(T);
+
+	deMemcpy(m_indirectBuffer->getBoundMemory().getHostPtr(), pCmdData, dataSize);
+	vk::flushMappedMemoryRange(m_vk, m_context.getDevice(), m_indirectBuffer->getBoundMemory().getMemory(), m_indirectBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
+}
+
+//! This function must be kept in sync with the shader.
+void DrawTest::drawReferenceImage (const tcu::PixelBufferAccess& refImage) const
+{
+	using tcu::Vec2;
+	using tcu::Vec4;
+	using tcu::IVec4;
+
+	const Vec2	perInstanceOffset[]	= { Vec2(0.0f, 0.0f), Vec2(-0.3f,  0.0f), Vec2(0.0f, 0.3f) };
+	const Vec2	perDrawOffset[]		= { Vec2(0.0f, 0.0f), Vec2(-0.3f, -0.3f), Vec2(0.3f, 0.3f) };
+	const Vec4	allColors[]			= { Vec4(1.0f), Vec4(0.0f, 0.0f, 1.0f, 1.0f), Vec4(0.0f, 1.0f, 0.0f, 1.0f) };
+	const int	numInstances		= isInstanced() ? MAX_INSTANCE_COUNT		: 1;
+	const int	numIndirectDraws	= isMultiDraw() ? MAX_INDIRECT_DRAW_COUNT	: 1;
+	const int	rectWidth			= static_cast<int>(WIDTH  * 0.6f / 2.0f);
+	const int	rectHeight			= static_cast<int>(HEIGHT * 0.6f / 2.0f);
+
+	DE_ASSERT(DE_LENGTH_OF_ARRAY(perInstanceOffset) >= numInstances);
+	DE_ASSERT(DE_LENGTH_OF_ARRAY(allColors) >= numInstances && DE_LENGTH_OF_ARRAY(allColors) >= numIndirectDraws);
+	DE_ASSERT(DE_LENGTH_OF_ARRAY(perDrawOffset) >= numIndirectDraws);
+
+	tcu::clear(refImage, tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f));
+
+	for (int drawNdx     = 0; drawNdx     < numIndirectDraws; ++drawNdx)
+	for (int instanceNdx = 0; instanceNdx < numInstances;     ++instanceNdx)
+	{
+		const Vec2	offset	= perInstanceOffset[instanceNdx] + perDrawOffset[drawNdx];
+		const Vec4&	color	= allColors[isMultiDraw() ? drawNdx : instanceNdx];
+		int			x		= static_cast<int>(WIDTH  * (1.0f - 0.3f + offset.x()) / 2.0f);
+		int			y		= static_cast<int>(HEIGHT * (1.0f - 0.3f + offset.y()) / 2.0f);
+
+		tcu::clear(tcu::getSubregion(refImage, x, y, rectWidth, rectHeight), color);
+	}
+}
+
+tcu::TestStatus DrawTest::iterate (void)
+{
+	// Draw
+	{
+		beginRenderPass();
+
+		const vk::VkDeviceSize	vertexBufferOffset	= 0;
+		const vk::VkBuffer		vertexBuffer		= m_vertexBuffer->object();
+
+		m_vk.cmdBindVertexBuffers	(*m_cmdBuffer, 0, 1, &vertexBuffer, &vertexBufferOffset);
+		m_vk.cmdBindPipeline		(*m_cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
+
+		if (isIndexed())
+			m_vk.cmdBindIndexBuffer(*m_cmdBuffer, m_indexBuffer->object(), 0ull, vk::VK_INDEX_TYPE_UINT32);
+
+		const deUint32			numInstances		= isInstanced() ? MAX_INSTANCE_COUNT : 1;
+
+		if (isIndirect())
+		{
+			if (isIndexed())
+			{
+				const vk::VkDrawIndexedIndirectCommand commands[] =
+				{
+					// indexCount, instanceCount, firstIndex, vertexOffset, firstInstance
+					{ NUM_VERTICES,	numInstances,	NDX_FIRST_INDEX,	OFFSET_FIRST_INDEX,		(isFirstInstance() ? 2u : 0u) },
+					{ NUM_VERTICES,	numInstances,	NDX_SECOND_INDEX,	OFFSET_SECOND_INDEX,	(isFirstInstance() ? 1u : 0u) },
+					{ NUM_VERTICES,	numInstances,	NDX_FIRST_INDEX,	OFFSET_FIRST_INDEX,		(isFirstInstance() ? 3u : 0u) },
+				};
+				setIndirectCommand(commands);
+			}
+			else
+			{
+				const vk::VkDrawIndirectCommand commands[] =
+				{
+					// vertexCount, instanceCount, firstVertex, firstInstance
+					{ NUM_VERTICES,	numInstances,	NDX_FIRST_VERTEX,	(isFirstInstance() ? 2u : 0u) },
+					{ NUM_VERTICES,	numInstances,	NDX_SECOND_VERTEX,	(isFirstInstance() ? 1u : 0u) },
+					{ NUM_VERTICES,	numInstances,	NDX_FIRST_VERTEX,	(isFirstInstance() ? 3u : 0u) },
+				};
+				setIndirectCommand(commands);
+			}
+		}
+
+		if (isIndirect())
+		{
+			const deUint32 numIndirectDraws = isMultiDraw() ? MAX_INDIRECT_DRAW_COUNT : 1;
+
+			if (isIndexed())
+				m_vk.cmdDrawIndexedIndirect(*m_cmdBuffer, m_indirectBuffer->object(), 0ull, numIndirectDraws, sizeof(vk::VkDrawIndexedIndirectCommand));
+			else
+				m_vk.cmdDrawIndirect(*m_cmdBuffer, m_indirectBuffer->object(), 0ull, numIndirectDraws, sizeof(vk::VkDrawIndirectCommand));
+		}
+		else
+		{
+			const deUint32 firstInstance = 2;
+
+			if (isIndexed())
+				m_vk.cmdDrawIndexed(*m_cmdBuffer, NUM_VERTICES, numInstances, NDX_FIRST_INDEX, OFFSET_FIRST_INDEX, firstInstance);
+			else
+				m_vk.cmdDraw(*m_cmdBuffer, NUM_VERTICES, numInstances, NDX_FIRST_VERTEX, firstInstance);
+		}
+
+		m_vk.cmdEndRenderPass(*m_cmdBuffer);
+		m_vk.endCommandBuffer(*m_cmdBuffer);
+	}
+
+	// Submit
+	{
+		const vk::VkQueue		queue		= m_context.getUniversalQueue();
+		const vk::VkSubmitInfo	submitInfo	=
+		{
+			vk::VK_STRUCTURE_TYPE_SUBMIT_INFO,			// VkStructureType			sType;
+			DE_NULL,									// const void*				pNext;
+			0,											// deUint32					waitSemaphoreCount;
+			DE_NULL,									// const VkSemaphore*		pWaitSemaphores;
+			(const vk::VkPipelineStageFlags*)DE_NULL,
+			1,											// deUint32					commandBufferCount;
+			&m_cmdBuffer.get(),							// const VkCommandBuffer*	pCommandBuffers;
+			0,											// deUint32					signalSemaphoreCount;
+			DE_NULL										// const VkSemaphore*		pSignalSemaphores;
+		};
+		VK_CHECK(m_vk.queueSubmit(queue, 1, &submitInfo, DE_NULL));
+		VK_CHECK(m_vk.queueWaitIdle(queue));
+	}
+
+	// Validate
+	{
+		tcu::TextureLevel referenceFrame(vk::mapVkFormat(m_colorAttachmentFormat), static_cast<int>(0.5f + WIDTH), static_cast<int>(0.5f + HEIGHT));
+
+		drawReferenceImage(referenceFrame.getAccess());
+
+		const vk::VkOffset3D				zeroOffset		= { 0, 0, 0 };
+		const tcu::ConstPixelBufferAccess	renderedFrame	= m_colorTargetImage->readSurface(m_context.getUniversalQueue(), m_context.getDefaultAllocator(),
+															  vk::VK_IMAGE_LAYOUT_GENERAL, zeroOffset, WIDTH, HEIGHT, vk::VK_IMAGE_ASPECT_COLOR_BIT);
+
+		if (!tcu::fuzzyCompare(m_context.getTestContext().getLog(), "Result", "Image comparison result", referenceFrame.getAccess(), renderedFrame, 0.05f, tcu::COMPARE_LOG_RESULT))
+			return tcu::TestStatus::fail("Rendered image is incorrect");
+		else
+			return tcu::TestStatus::pass("OK");
+	}
+}
+
+void addDrawCase (tcu::TestCaseGroup* group, const DrawTest::TestSpec testSpec, const TestFlags flags)
+{
+	std::ostringstream name;
+	name << "draw";
+
+	if (flags & TEST_FLAG_INDEXED)			name << "_indexed";
+	if (flags & TEST_FLAG_INDIRECT)			name << "_indirect";
+	if (flags & TEST_FLAG_INSTANCED)		name << "_instanced";
+	if (flags & TEST_FLAG_FIRST_INSTANCE)	name << "_first_instance";
+
+	group->addChild(new InstanceFactory<DrawTest>(group->getTestContext(), name.str(), "", addFlags(testSpec, flags)));
+}
+
+}	// anonymous
+
+ShaderDrawParametersTests::ShaderDrawParametersTests (tcu::TestContext &testCtx)
+	: TestCaseGroup	(testCtx, "shader_draw_parameters", "VK_KHR_shader_draw_parameters")
+{
+}
+
+void ShaderDrawParametersTests::init (void)
+{
+	{
+		DrawTest::TestSpec testSpec;
+		testSpec.shaders[glu::SHADERTYPE_VERTEX]	= "vulkan/draw/VertexFetchShaderDrawParameters.vert";
+		testSpec.shaders[glu::SHADERTYPE_FRAGMENT]	= "vulkan/draw/VertexFetch.frag";
+		testSpec.topology							= vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+		testSpec.flags								= 0;
+
+		de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(getTestContext(), "base_vertex", ""));
+		addDrawCase(group.get(), testSpec, 0);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDEXED);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDIRECT);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDEXED | TEST_FLAG_INDIRECT);
+		addChild(group.release());
+	}
+	{
+		DrawTest::TestSpec testSpec;
+		testSpec.shaders[glu::SHADERTYPE_VERTEX]	= "vulkan/draw/VertexFetchShaderDrawParameters.vert";
+		testSpec.shaders[glu::SHADERTYPE_FRAGMENT]	= "vulkan/draw/VertexFetch.frag";
+		testSpec.topology							= vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+		testSpec.flags								= TEST_FLAG_INSTANCED;
+
+		de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(getTestContext(), "base_instance", ""));
+		addDrawCase(group.get(), testSpec, 0);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDEXED);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDIRECT);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDIRECT | TEST_FLAG_FIRST_INSTANCE);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDEXED  | TEST_FLAG_INDIRECT);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDEXED  | TEST_FLAG_INDIRECT | TEST_FLAG_FIRST_INSTANCE);
+		addChild(group.release());
+	}
+	{
+		DrawTest::TestSpec testSpec;
+		testSpec.shaders[glu::SHADERTYPE_VERTEX]	= "vulkan/draw/VertexFetchShaderDrawParametersDrawIndex.vert";
+		testSpec.shaders[glu::SHADERTYPE_FRAGMENT]	= "vulkan/draw/VertexFetch.frag";
+		testSpec.topology							= vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+		testSpec.flags								= TEST_FLAG_INDIRECT | TEST_FLAG_MULTIDRAW;
+
+		de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(getTestContext(), "draw_index", ""));
+		addDrawCase(group.get(), testSpec, 0);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INSTANCED);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDEXED);
+		addDrawCase(group.get(), testSpec, TEST_FLAG_INDEXED | TEST_FLAG_INSTANCED);
+		addChild(group.release());
+	}
+}
+
+}	// DrawTests
+}	// vkt
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.hpp b/external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.hpp
new file mode 100644
index 0000000..02c532a
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.hpp
@@ -0,0 +1,47 @@
+#ifndef _VKTDRAWSHADERDRAWPARAMETERSTESTS_HPP
+#define _VKTDRAWSHADERDRAWPARAMETERSTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 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 VK_KHR_shader_draw_parameters tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace Draw
+{
+
+class ShaderDrawParametersTests : public tcu::TestCaseGroup
+{
+public:
+								ShaderDrawParametersTests	(tcu::TestContext& testCtx);
+	void						init						(void);
+
+private:
+								ShaderDrawParametersTests	(const ShaderDrawParametersTests& other);
+	ShaderDrawParametersTests&	operator=					(const ShaderDrawParametersTests& other);
+};
+
+} // Draw
+} // vkt
+
+#endif // _VKTDRAWSHADERDRAWPARAMETERSTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp
index ee04acf..58094cf 100644
--- a/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp
@@ -30,6 +30,8 @@
 #include "vktDrawInstancedTests.hpp"
 #include "vktTestGroupUtil.hpp"
 #include "vktBasicDrawTests.hpp"
+#include "vktDrawShaderDrawParametersTests.hpp"
+#include "vktDrawNegativeViewportHeightTests.hpp"
 
 namespace vkt
 {
@@ -43,11 +45,13 @@
 {
 	tcu::TestContext&	testCtx		= group->getTestContext();
 
-	group->addChild(new SimpleDrawTests(testCtx));
-	group->addChild(new DrawIndexedTests(testCtx));
-	group->addChild(new IndirectDrawTests(testCtx));
-	group->addChild(createBasicDrawTests(testCtx));
-	group->addChild(new InstancedTests(testCtx));
+	group->addChild(new SimpleDrawTests					(testCtx));
+	group->addChild(new DrawIndexedTests				(testCtx));
+	group->addChild(new IndirectDrawTests				(testCtx));
+	group->addChild(createBasicDrawTests				(testCtx));
+	group->addChild(new InstancedTests					(testCtx));
+	group->addChild(new ShaderDrawParametersTests		(testCtx));
+	group->addChild(createNegativeViewportHeightTests	(testCtx));
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp b/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp
index d5e10e9..182f9c0 100644
--- a/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp
+++ b/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp
@@ -653,16 +653,18 @@
 
 	// Geometry shader
 	{
-		const int maxVertices = (params.testType == TEST_TYPE_DIFFERENT_CONTENT)									? (params.image.numLayers + 1) * params.image.numLayers :
-								(params.testType == TEST_TYPE_ALL_LAYERS || params.testType == TEST_TYPE_LAYER_ID)	? params.image.numLayers * 4 :
-								(params.testType == TEST_TYPE_MULTIPLE_LAYERS_PER_INVOCATION)						? 6 : 4;
+		const int numLayers		= static_cast<int>(params.image.viewType == VK_IMAGE_VIEW_TYPE_3D ? params.image.size.depth : params.image.numLayers);
+
+		const int maxVertices	= (params.testType == TEST_TYPE_DIFFERENT_CONTENT)										? (numLayers + 1) * numLayers :
+								  (params.testType == TEST_TYPE_ALL_LAYERS || params.testType == TEST_TYPE_LAYER_ID)	? numLayers * 4 :
+								  (params.testType == TEST_TYPE_MULTIPLE_LAYERS_PER_INVOCATION)							? 6 : 4;
 
 		std::ostringstream src;
 		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
 			<< "\n";
 
 		if (params.testType == TEST_TYPE_INVOCATION_PER_LAYER || params.testType == TEST_TYPE_MULTIPLE_LAYERS_PER_INVOCATION)
-			src << "layout(points, invocations = " << params.image.numLayers << ") in;\n";
+			src << "layout(points, invocations = " << numLayers << ") in;\n";
 		else
 			src << "layout(points) in;\n";
 
@@ -728,7 +730,7 @@
 		{
 			src << colorTable.str()
 				<< "\n"
-				<< "    for (int layerNdx = 0; layerNdx < " << params.image.numLayers << "; ++layerNdx) {\n"
+				<< "    for (int layerNdx = 0; layerNdx < " << numLayers << "; ++layerNdx) {\n"
 				<< "        const int colorNdx = layerNdx % " << DE_LENGTH_OF_ARRAY(s_colors) << ";\n"
 				<< "\n"
 				<< "        gl_Position = vec4(-1.0, -1.0, 0.0, 1.0);\n"
@@ -755,7 +757,7 @@
 		}
 		else if (params.testType == TEST_TYPE_LAYER_ID)
 		{
-			src << "    for (int layerNdx = 0; layerNdx < " << params.image.numLayers << "; ++layerNdx) {\n"
+			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"
 				<< "        EmitVertex();\n"
@@ -776,9 +778,9 @@
 		}
 		else if (params.testType == TEST_TYPE_DIFFERENT_CONTENT)
 		{
-			src << "    for (int layerNdx = 0; layerNdx < " << params.image.numLayers << "; ++layerNdx) {\n"
+			src << "    for (int layerNdx = 0; layerNdx < " << numLayers << "; ++layerNdx) {\n"
 				<< "        for (int colNdx = 0; colNdx <= layerNdx; ++colNdx) {\n"
-				<< "            const float posX = float(colNdx) / float(" << params.image.numLayers << ") * 2.0 - 1.0;\n"
+				<< "            const float posX = float(colNdx) / float(" << numLayers << ") * 2.0 - 1.0;\n"
 				<< "\n"
 				<< "            gl_Position = vec4(posX,  1.0, 0.0, 1.0);\n"
 				<< "            gl_Layer    = layerNdx;\n"
@@ -820,9 +822,9 @@
 		else if (params.testType == TEST_TYPE_MULTIPLE_LAYERS_PER_INVOCATION)
 		{
 			src << "    const int   layerA = gl_InvocationID;\n"
-				<< "    const int   layerB = (gl_InvocationID + 1) % " << params.image.numLayers << ";\n"
-				<< "    const float aEnd   = float(layerA) / float(" << params.image.numLayers << ") * 2.0 - 1.0;\n"
-				<< "    const float bEnd   = float(layerB) / float(" << params.image.numLayers << ") * 2.0 - 1.0;\n"
+				<< "    const int   layerB = (gl_InvocationID + 1) % " << numLayers << ";\n"
+				<< "    const float aEnd   = float(layerA) / float(" << numLayers << ") * 2.0 - 1.0;\n"
+				<< "    const float bEnd   = float(layerB) / float(" << numLayers << ") * 2.0 - 1.0;\n"
 				<< "\n"
 				<< "    gl_Position = vec4(-1.0, -1.0, 0.0, 1.0);\n"
 				<< "    gl_Layer    = layerA;\n"
@@ -890,40 +892,47 @@
 
 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();
+	if (VK_IMAGE_VIEW_TYPE_3D == params.image.viewType &&
+		(!de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_KHR_maintenance1")))
+		TCU_THROW(NotSupportedError, "Extension VK_KHR_maintenance1 not supported");
+
+	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();
 
 	checkGeometryShaderSupport(vki, physDevice);
 
 	const VkFormat					colorFormat				= VK_FORMAT_R8G8B8A8_UNORM;
-	const VkImageSubresourceRange	colorSubresourceRange	= makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, params.image.numLayers);
+	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 VkImageCreateFlags		imageCreateFlags		= (isCubeImageViewType(params.image.viewType) ? VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT : (VkImageCreateFlagBits)0);
+	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);
 
-	const Unique<VkImage>			colorImage			(makeImage				(vk, device, makeImageCreateInfo(imageCreateFlags, getImageType(params.image.viewType), colorFormat, params.image.size,
-																				 params.image.numLayers, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT)));
-	const UniquePtr<Allocation>		colorImageAlloc		(bindImage				(vk, device, allocator, *colorImage, MemoryRequirement::Any));
-	const Unique<VkImageView>		colorAttachment		(makeImageView			(vk, device, *colorImage, params.image.viewType, colorFormat, colorSubresourceRange));
-	const Unique<VkBuffer>			colorBuffer			(makeBuffer				(vk, device, makeBufferCreateInfo(colorBufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT)));
-	const UniquePtr<Allocation>		colorBufferAlloc	(bindBuffer				(vk, device, allocator, *colorBuffer, MemoryRequirement::HostVisible));
+	const Unique<VkImage>			colorImage				(makeImage				(vk, device, makeImageCreateInfo(imageCreateFlags, getImageType(params.image.viewType), colorFormat, params.image.size,
+																					 params.image.numLayers, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT)));
+	const UniquePtr<Allocation>		colorImageAlloc			(bindImage				(vk, device, allocator, *colorImage, MemoryRequirement::Any));
+	const Unique<VkImageView>		colorAttachment			(makeImageView			(vk, device, *colorImage, viewType, colorFormat, makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, numLayers)));
 
-	const Unique<VkShaderModule>	vertexModule		(createShaderModule		(vk, device, context.getBinaryCollection().get("vert"), 0u));
-	const Unique<VkShaderModule>	geometryModule		(createShaderModule		(vk, device, context.getBinaryCollection().get("geom"), 0u));
-	const Unique<VkShaderModule>	fragmentModule		(createShaderModule		(vk, device, context.getBinaryCollection().get("frag"), 0u));
+	const Unique<VkBuffer>			colorBuffer				(makeBuffer				(vk, device, makeBufferCreateInfo(colorBufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT)));
+	const UniquePtr<Allocation>		colorBufferAlloc		(bindBuffer				(vk, device, allocator, *colorBuffer, MemoryRequirement::HostVisible));
 
-	const Unique<VkRenderPass>		renderPass			(makeRenderPass			(vk, device, colorFormat));
-	const Unique<VkFramebuffer>		framebuffer			(makeFramebuffer		(vk, device, *renderPass, *colorAttachment, params.image.size.width,  params.image.size.height, params.image.numLayers));
-	const Unique<VkPipelineLayout>	pipelineLayout		(makePipelineLayout		(vk, device));
-	const Unique<VkPipeline>		pipeline			(makeGraphicsPipeline	(vk, device, *pipelineLayout, *renderPass, *vertexModule, *geometryModule, *fragmentModule,
-																				 makeExtent2D(params.image.size.width, params.image.size.height)));
-	const Unique<VkCommandPool>		cmdPool				(makeCommandPool		(vk, device, queueFamilyIndex));
-	const Unique<VkCommandBuffer>	cmdBuffer			(makeCommandBuffer		(vk, device, *cmdPool));
+	const Unique<VkShaderModule>	vertexModule			(createShaderModule		(vk, device, context.getBinaryCollection().get("vert"), 0u));
+	const Unique<VkShaderModule>	geometryModule			(createShaderModule		(vk, device, context.getBinaryCollection().get("geom"), 0u));
+	const Unique<VkShaderModule>	fragmentModule			(createShaderModule		(vk, device, context.getBinaryCollection().get("frag"), 0u));
+
+	const Unique<VkRenderPass>		renderPass				(makeRenderPass			(vk, device, colorFormat));
+	const Unique<VkFramebuffer>		framebuffer				(makeFramebuffer		(vk, device, *renderPass, *colorAttachment, params.image.size.width,  params.image.size.height, numLayers));
+	const Unique<VkPipelineLayout>	pipelineLayout			(makePipelineLayout		(vk, device));
+	const Unique<VkPipeline>		pipeline				(makeGraphicsPipeline	(vk, device, *pipelineLayout, *renderPass, *vertexModule, *geometryModule, *fragmentModule,
+																					 makeExtent2D(params.image.size.width, params.image.size.height)));
+	const Unique<VkCommandPool>		cmdPool					(makeCommandPool		(vk, device, queueFamilyIndex));
+	const Unique<VkCommandBuffer>	cmdBuffer				(makeCommandBuffer		(vk, device, *cmdPool));
 
 	zeroBuffer(vk, device, *colorBufferAlloc, colorBufferSize);
 
@@ -953,7 +962,8 @@
 
 	// Prepare color image for copy
 	{
-		const VkImageMemoryBarrier barriers[] =
+		const VkImageSubresourceRange	colorSubresourceRange	= makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, params.image.numLayers);
+		const VkImageMemoryBarrier		barriers[] =
 		{
 			{
 				VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,			// VkStructureType			sType;
@@ -1042,11 +1052,11 @@
 
 	const ImageParams imageParams[] =
 	{
-		{ 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	},
-		// No support for rendering to 3d image slices in Vulkan 1.0
+		{ 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	}
 	};
 
 	for (int imageParamNdx = 0; imageParamNdx < DE_LENGTH_OF_ARRAY(imageParams); ++imageParamNdx)
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineRenderToImageTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineRenderToImageTests.cpp
index 3ec6ecc..5f389eb 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineRenderToImageTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineRenderToImageTests.cpp
@@ -548,6 +548,10 @@
 
 tcu::TestStatus test (Context& context, const CaseDef caseDef)
 {
+	if (VK_IMAGE_VIEW_TYPE_3D == caseDef.imageType &&
+		(!de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_KHR_maintenance1")))
+		TCU_THROW(NotSupportedError, "Extension VK_KHR_maintenance1 not supported");
+
 	const DeviceInterface&			vk					= context.getDeviceInterface();
 	const VkDevice					device				= context.getDevice();
 	const VkQueue					queue				= context.getUniversalQueue();
@@ -563,13 +567,14 @@
 		Vec4(0.1f, 0.0f, 1.0f, 1.0f)
 	};
 
+	const int						numLayers			= (VK_IMAGE_VIEW_TYPE_3D == caseDef.imageType ? caseDef.renderSize.z() : caseDef.numLayers);
 	const VkDeviceSize				colorBufferSize		= caseDef.renderSize.x() * caseDef.renderSize.y() * caseDef.renderSize.z() * caseDef.numLayers * tcu::getPixelSize(mapVkFormat(caseDef.colorFormat));
 	const Unique<VkBuffer>			colorBuffer			(makeBuffer(vk, device, colorBufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT));
 	const UniquePtr<Allocation>		colorBufferAlloc	(bindBuffer(vk, device, allocator, *colorBuffer, MemoryRequirement::HostVisible));
 
 	const Unique<VkShaderModule>	vertexModule		(createShaderModule			(vk, device, context.getBinaryCollection().get("vert"), 0u));
 	const Unique<VkShaderModule>	fragmentModule		(createShaderModule			(vk, device, context.getBinaryCollection().get("frag"), 0u));
-	const Unique<VkRenderPass>		renderPass			(makeRenderPass				(vk, device, caseDef.colorFormat, static_cast<deUint32>(caseDef.numLayers)));
+	const Unique<VkRenderPass>		renderPass			(makeRenderPass				(vk, device, caseDef.colorFormat, static_cast<deUint32>(numLayers)));
 	const Unique<VkPipelineLayout>	pipelineLayout		(makePipelineLayout			(vk, device));
 	vector<SharedPtrVkPipeline>		pipeline;
 	const Unique<VkCommandPool>		cmdPool				(makeCommandPool  (vk, device, queueFamilyIndex));
@@ -583,14 +588,15 @@
 
 	//create colorImage
 	{
+		const VkImageViewCreateFlags	flags			= (VK_IMAGE_VIEW_TYPE_3D == caseDef.imageType ? (VkImageViewCreateFlags)VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR : (VkImageViewCreateFlags)0);
 		const VkImageUsageFlags			colorImageUsage	= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
-		colorImage = makeImage(vk, device, VkImageViewCreateFlags(0), getImageType(caseDef.imageType), caseDef.colorFormat, caseDef.renderSize, caseDef.numLayers, colorImageUsage);
+		colorImage = makeImage(vk, device, flags, getImageType(caseDef.imageType), caseDef.colorFormat, caseDef.renderSize, caseDef.numLayers, colorImageUsage);
 		colorImageAlloc = bindImage(vk, device, allocator, *colorImage, MemoryRequirement::Any);
 	}
 
 	//create vertexBuffer
 	{
-		const vector<Vertex4RGBA>	vertices			= genFullQuadVertices(caseDef.numLayers, vector<Vec4>(color, color + DE_LENGTH_OF_ARRAY(color)));
+		const vector<Vertex4RGBA>	vertices			= genFullQuadVertices(numLayers, vector<Vec4>(color, color + DE_LENGTH_OF_ARRAY(color)));
 		const VkDeviceSize			vertexBufferSize	= sizeInBytes(vertices);
 
 		vertexBuffer		= makeBuffer(vk, device, vertexBufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
@@ -600,22 +606,24 @@
 	}
 
 	//create attachmentHandles and pipelines
-	for (int layerNdx = 0; layerNdx < caseDef.numLayers; ++layerNdx)
+	for (int layerNdx = 0; layerNdx < numLayers; ++layerNdx)
 	{
-		colorAttachments.push_back(makeSharedPtr(makeImageView(vk, device, *colorImage,
-															  (caseDef.imageType == VK_IMAGE_VIEW_TYPE_CUBE || caseDef.imageType == VK_IMAGE_VIEW_TYPE_CUBE_ARRAY ? VK_IMAGE_VIEW_TYPE_2D : caseDef.imageType),
-															  caseDef.colorFormat, makeColorSubresourceRange(layerNdx, 1))));
+		const VkImageViewType	imageType = (VK_IMAGE_VIEW_TYPE_3D == caseDef.imageType ? VK_IMAGE_VIEW_TYPE_2D_ARRAY :
+											(VK_IMAGE_VIEW_TYPE_CUBE == caseDef.imageType || VK_IMAGE_VIEW_TYPE_CUBE_ARRAY == caseDef.imageType ? VK_IMAGE_VIEW_TYPE_2D :
+											caseDef.imageType));
+
+		colorAttachments.push_back(makeSharedPtr(makeImageView(vk, device, *colorImage, imageType, caseDef.colorFormat, makeColorSubresourceRange(layerNdx, 1))));
 		attachmentHandles.push_back(**colorAttachments.back());
 
 		pipeline.push_back(makeSharedPtr(makeGraphicsPipeline(vk, device, *pipelineLayout, *renderPass, *vertexModule, *fragmentModule,
 															  caseDef.renderSize, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, static_cast<deUint32>(layerNdx))));
 	}
 
-	framebuffer = makeFramebuffer(vk, device, *renderPass, caseDef.numLayers, &attachmentHandles[0], static_cast<deUint32>(caseDef.renderSize.x()), static_cast<deUint32>(caseDef.renderSize.y()));
+	framebuffer = makeFramebuffer(vk, device, *renderPass, numLayers, &attachmentHandles[0], static_cast<deUint32>(caseDef.renderSize.x()), static_cast<deUint32>(caseDef.renderSize.y()));
 
 	beginCommandBuffer(vk, *cmdBuffer);
 	{
-		const vector<VkClearValue>	clearValues			(caseDef.numLayers, getClearValue(caseDef.colorFormat));
+		const vector<VkClearValue>	clearValues			(numLayers, getClearValue(caseDef.colorFormat));
 		const VkRect2D				renderArea			=
 		{
 			makeOffset2D(0, 0),
@@ -638,7 +646,7 @@
 	}
 
 	//cmdDraw
-	for (deUint32 layerNdx = 0; layerNdx < static_cast<deUint32>(caseDef.numLayers); ++layerNdx)
+	for (deUint32 layerNdx = 0; layerNdx < static_cast<deUint32>(numLayers); ++layerNdx)
 	{
 		if (layerNdx != 0)
 			vk.cmdNextSubpass(*cmdBuffer, VK_SUBPASS_CONTENTS_INLINE);
@@ -757,6 +765,7 @@
 		{ VK_IMAGE_VIEW_TYPE_1D_ARRAY,		IVec3(54,  1, 1),	4,		VK_FORMAT_UNDEFINED},
 		{ VK_IMAGE_VIEW_TYPE_2D,			IVec3(22, 64, 1),	1,		VK_FORMAT_UNDEFINED},
 		{ VK_IMAGE_VIEW_TYPE_2D_ARRAY,		IVec3(22, 64, 1),	4,		VK_FORMAT_UNDEFINED},
+		{ VK_IMAGE_VIEW_TYPE_3D,			IVec3(22, 64, 7),	1,		VK_FORMAT_UNDEFINED},
 		{ VK_IMAGE_VIEW_TYPE_CUBE,			IVec3(35, 35, 1),	6,		VK_FORMAT_UNDEFINED},
 		{ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,	IVec3(35, 35, 1),	2*6,	VK_FORMAT_UNDEFINED},
 	};
diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.cpp
index 9b86dfb..49c72b0 100644
--- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.cpp
+++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperation.cpp
@@ -540,9 +540,10 @@
 
 	VkQueueFlags getQueueFlags (const OperationContext& context) const
 	{
-		DE_UNREF(context);
-		if (BUFFER_OP_FILL == m_bufferOp)
+		if (std::find(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_KHR_maintenance1") == context.getDeviceExtensions().end() ||
+			BUFFER_OP_UPDATE != m_bufferOp)
 			return VK_QUEUE_COMPUTE_BIT | VK_QUEUE_GRAPHICS_BIT;
+
 		return VK_QUEUE_TRANSFER_BIT;
 	}
 
diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp
index 263dc72..0f14ef9 100644
--- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp
+++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationOperationMultiQueueTests.cpp
@@ -120,21 +120,21 @@
 			const std::vector<std::string>&	deviceExtensions	= context.getDeviceExtensions();
 			std::vector<const char*>		charDevExtensions;
 
-			for (std::size_t ndx = 0; ndx < deviceExtensions.size(); ++ndx)
+			for (size_t ndx = 0; ndx < deviceExtensions.size(); ++ndx)
 				charDevExtensions.push_back(deviceExtensions[ndx].c_str());
 
 			const VkDeviceCreateInfo		deviceInfo		=
 			{
-				VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,							//VkStructureType					sType;
-				DE_NULL,														//const void*						pNext;
-				0u,																//VkDeviceCreateFlags				flags;
-				static_cast<deUint32>(queueInfos.size()),						//deUint32							queueCreateInfoCount;
-				&queueInfos[0],													//const VkDeviceQueueCreateInfo*	pQueueCreateInfos;
-				0u,																//deUint32							enabledLayerCount;
-				DE_NULL,														//const char* const*				ppEnabledLayerNames;
-				static_cast<deUint32>(deviceExtensions.size()),					//deUint32							enabledExtensionCount;
-				charDevExtensions.empty() ? DE_NULL : &charDevExtensions[0],	//const char* const*				ppEnabledExtensionNames;
-				&context.getDeviceFeatures()									//const VkPhysicalDeviceFeatures*	pEnabledFeatures;
+				VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,			//VkStructureType					sType;
+				DE_NULL,										//const void*						pNext;
+				0u,												//VkDeviceCreateFlags				flags;
+				static_cast<deUint32>(queueInfos.size()),		//deUint32							queueCreateInfoCount;
+				&queueInfos[0],									//const VkDeviceQueueCreateInfo*	pQueueCreateInfos;
+				0u,												//deUint32							enabledLayerCount;
+				DE_NULL,										//const char* const*				ppEnabledLayerNames;
+				static_cast<deUint32>(deviceExtensions.size()),	//deUint32							enabledExtensionCount;
+				&charDevExtensions[0],							//const char* const*				ppEnabledExtensionNames;
+				&context.getDeviceFeatures()					//const VkPhysicalDeviceFeatures*	pEnabledFeatures;
 			};
 
 			m_logicalDevice	= createDevice(instance, physicalDevice, &deviceInfo);
diff --git a/external/vulkancts/modules/vulkan/vktTestCase.cpp b/external/vulkancts/modules/vulkan/vktTestCase.cpp
index 1962958..72024c9 100644
--- a/external/vulkancts/modules/vulkan/vktTestCase.cpp
+++ b/external/vulkancts/modules/vulkan/vktTestCase.cpp
@@ -91,7 +91,8 @@
 	const char*		extensionGroups[] =
 	{
 		"VK_KHR_",
-		"VK_EXT_"
+		"VK_EXT_",
+		"VK_KHX_"
 	};
 
 	for (size_t deviceExtNdx = 0; deviceExtNdx < deviceExtensions.size(); deviceExtNdx++)
diff --git a/external/vulkancts/mustpass/1.0.2/vk-default.txt b/external/vulkancts/mustpass/1.0.2/vk-default.txt
index 015f245..ab4b75b7 100644
--- a/external/vulkancts/mustpass/1.0.2/vk-default.txt
+++ b/external/vulkancts/mustpass/1.0.2/vk-default.txt
@@ -1307,6 +1307,2219 @@
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x10_srgb_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_unorm_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.get_physical_device_properties2.features
+dEQP-VK.api.info.get_physical_device_properties2.properties
+dEQP-VK.api.info.get_physical_device_properties2.format_properties
+dEQP-VK.api.info.get_physical_device_properties2.queue_family_properties
+dEQP-VK.api.info.get_physical_device_properties2.memory_properties
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.optimal.s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.1d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.1d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.d16_unorm
+dEQP-VK.api.info.image_format_properties2.1d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.1d.linear.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.1d.linear.s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.1d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.optimal.s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.2d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.2d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.d16_unorm
+dEQP-VK.api.info.image_format_properties2.2d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.2d.linear.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.2d.linear.s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.2d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.optimal.s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.image_format_properties2.3d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.image_format_properties2.3d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.d16_unorm
+dEQP-VK.api.info.image_format_properties2.3d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.image_format_properties2.3d.linear.d32_sfloat
+dEQP-VK.api.info.image_format_properties2.3d.linear.s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc2_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc2_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc3_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc3_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc4_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc5_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc7_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.bc7_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.image_format_properties2.3d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.1d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.2d.linear.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.optimal.astc_12x12_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r4g4_unorm_pack8
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r4g4b4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b4g4r4a4_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r5g6b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b5g6r5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r5g5b5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b5g5r5a1_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a1r5g5b5_unorm_pack16
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r8g8b8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b8g8r8a8_srgb
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a8b8g8r8_srgb_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2r10g10b10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_snorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_uscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_sscaled_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_uint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.a2b10g10r10_sint_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_snorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_uscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_sscaled
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r16g16b16a16_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32a32_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32a32_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r32g32b32a32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64a64_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64a64_sint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.r64g64b64a64_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.b10g11r11_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.e5b9g9r9_ufloat_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d16_unorm
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.x8_d24_unorm_pack32
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d32_sfloat
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d16_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d24_unorm_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.d32_sfloat_s8_uint
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc1_rgb_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc1_rgb_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc1_rgba_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc1_rgba_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc2_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc2_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc3_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc3_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc4_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc5_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc6h_ufloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc6h_sfloat_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc7_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.bc7_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8a1_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8a1_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8a8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.etc2_r8g8b8a8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.eac_r11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.eac_r11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.eac_r11g11_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.eac_r11g11_snorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_4x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_4x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_5x4_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_5x4_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_5x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_5x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_6x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_6x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_6x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_6x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_8x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x5_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x5_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x6_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x6_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x8_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x8_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_10x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_12x10_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_12x10_srgb_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_12x12_unorm_block
+dEQP-VK.api.info.sparse_image_format_properties2.3d.linear.astc_12x12_srgb_block
 dEQP-VK.api.device_init.create_instance_name_version
 dEQP-VK.api.device_init.create_instance_invalid_api_version
 dEQP-VK.api.device_init.create_instance_null_appinfo
@@ -1315,6 +3528,7 @@
 dEQP-VK.api.device_init.create_multiple_devices
 dEQP-VK.api.device_init.create_device_unsupported_extensions
 dEQP-VK.api.device_init.create_device_various_queue_counts
+dEQP-VK.api.device_init.create_device_features2
 dEQP-VK.api.object_management.single.instance
 dEQP-VK.api.object_management.single.device
 dEQP-VK.api.object_management.single.device_memory_small
@@ -3348,6 +5562,8 @@
 dEQP-VK.api.command_buffers.execute_small_primary
 dEQP-VK.api.command_buffers.execute_large_primary
 dEQP-VK.api.command_buffers.reset_implicit
+dEQP-VK.api.command_buffers.trim_command_pool
+dEQP-VK.api.command_buffers.trim_command_pool_secondary
 dEQP-VK.api.command_buffers.record_single_primary
 dEQP-VK.api.command_buffers.record_many_primary
 dEQP-VK.api.command_buffers.record_single_secondary
@@ -6101,6 +8317,12 @@
 dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d16_unorm_s8_uint_d16_unorm_s8_uint
 dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d24_unorm_s8_uint_d24_unorm_s8_uint
 dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_d32_sfloat_s8_uint_d32_sfloat_s8_uint
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_by_slices
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_by_layers
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_whole
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_whole
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.3d_to_2d_regions
+dEQP-VK.api.copy_and_blit.image_to_image.3d_images.2d_to_3d_regions
 dEQP-VK.api.copy_and_blit.image_to_buffer.whole
 dEQP-VK.api.copy_and_blit.image_to_buffer.buffer_offset
 dEQP-VK.api.copy_and_blit.image_to_buffer.regions
@@ -11452,6 +13674,7 @@
 dEQP-VK.api.fill_and_update_buffer.update_buffer_second_part
 dEQP-VK.api.descriptor_pool.repeated_reset_short
 dEQP-VK.api.descriptor_pool.repeated_reset_long
+dEQP-VK.api.descriptor_pool.out_of_pool_memory
 dEQP-VK.api.null_handle.destroy_buffer
 dEQP-VK.api.null_handle.destroy_buffer_view
 dEQP-VK.api.null_handle.destroy_command_pool
@@ -83566,6 +85789,10 @@
 dEQP-VK.pipeline.render_to_image.2d_array.22x64_4.r32_uint
 dEQP-VK.pipeline.render_to_image.2d_array.22x64_4.r16g16_sint
 dEQP-VK.pipeline.render_to_image.2d_array.22x64_4.r32g32b32a32_sfloat
+dEQP-VK.pipeline.render_to_image.3d.22x64x7.r8g8b8a8_unorm
+dEQP-VK.pipeline.render_to_image.3d.22x64x7.r32_uint
+dEQP-VK.pipeline.render_to_image.3d.22x64x7.r16g16_sint
+dEQP-VK.pipeline.render_to_image.3d.22x64x7.r32g32b32a32_sfloat
 dEQP-VK.pipeline.render_to_image.cube.35x35_6.r8g8b8a8_unorm
 dEQP-VK.pipeline.render_to_image.cube.35x35_6.r32_uint
 dEQP-VK.pipeline.render_to_image.cube.35x35_6.r16g16_sint
@@ -114084,6 +116311,28 @@
 dEQP-VK.draw.instanced.draw_indexed_vk_primitive_topology_triangle_fan
 dEQP-VK.draw.instanced.draw_indirect_vk_primitive_topology_triangle_fan
 dEQP-VK.draw.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan
+dEQP-VK.draw.shader_draw_parameters.base_vertex.draw
+dEQP-VK.draw.shader_draw_parameters.base_vertex.draw_indexed
+dEQP-VK.draw.shader_draw_parameters.base_vertex.draw_indirect
+dEQP-VK.draw.shader_draw_parameters.base_vertex.draw_indexed_indirect
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indexed
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indirect
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indirect_first_instance
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indexed_indirect
+dEQP-VK.draw.shader_draw_parameters.base_instance.draw_indexed_indirect_first_instance
+dEQP-VK.draw.shader_draw_parameters.draw_index.draw
+dEQP-VK.draw.shader_draw_parameters.draw_index.draw_instanced
+dEQP-VK.draw.shader_draw_parameters.draw_index.draw_indexed
+dEQP-VK.draw.shader_draw_parameters.draw_index.draw_indexed_instanced
+dEQP-VK.draw.negative_viewport_height.front_ccw_cull_none
+dEQP-VK.draw.negative_viewport_height.front_ccw_cull_front
+dEQP-VK.draw.negative_viewport_height.front_ccw_cull_back
+dEQP-VK.draw.negative_viewport_height.front_ccw_cull_both
+dEQP-VK.draw.negative_viewport_height.front_cw_cull_none
+dEQP-VK.draw.negative_viewport_height.front_cw_cull_front
+dEQP-VK.draw.negative_viewport_height.front_cw_cull_back
+dEQP-VK.draw.negative_viewport_height.front_cw_cull_both
 dEQP-VK.compute.basic.empty_shader
 dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation
 dEQP-VK.compute.basic.ubo_to_ssbo_single_group
@@ -131968,6 +134217,13 @@
 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.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.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/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py
index eb6aa23..96e770b 100644
--- a/external/vulkancts/scripts/gen_framework.py
+++ b/external/vulkancts/scripts/gen_framework.py
@@ -99,6 +99,15 @@
 	"vkCreateWin32SurfaceKHR",
 	"vkGetPhysicalDeviceWin32PresentationSupportKHR",
 
+	# VK_KHR_get_physical_device_properties2
+	"vkGetPhysicalDeviceFeatures2KHR",
+	"vkGetPhysicalDeviceProperties2KHR",
+	"vkGetPhysicalDeviceFormatProperties2KHR",
+	"vkGetPhysicalDeviceQueueFamilyProperties2KHR",
+	"vkGetPhysicalDeviceImageFormatProperties2KHR",
+	"vkGetPhysicalDeviceMemoryProperties2KHR",
+	"vkGetPhysicalDeviceSparseImageFormatProperties2KHR",
+
 	# VK_EXT_debug_report
 	"vkCreateDebugReportCallbackEXT",
 	"vkDestroyDebugReportCallbackEXT",
diff --git a/external/vulkancts/scripts/src/vulkan.h.in b/external/vulkancts/scripts/src/vulkan.h.in
index 54ddfcd..fb9be8e 100644
--- a/external/vulkancts/scripts/src/vulkan.h.in
+++ b/external/vulkancts/scripts/src/vulkan.h.in
@@ -145,6 +145,7 @@
     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
     VK_ERROR_INVALID_SHADER_NV = -1000012000,
+    VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000,
     VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
     VK_RESULT_END_RANGE = VK_INCOMPLETE,
     VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
@@ -225,6 +226,15 @@
     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
+    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
+    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
+    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
+    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
     VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
@@ -840,6 +850,8 @@
     VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
+    VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
+    VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
     VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkFormatFeatureFlagBits;
 typedef VkFlags VkFormatFeatureFlags;
@@ -863,6 +875,7 @@
     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
+    VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
     VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkImageCreateFlagBits;
 typedef VkFlags VkImageCreateFlags;
@@ -3739,6 +3752,131 @@
 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
 
 
+#define VK_KHR_get_physical_device_properties2 1
+#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
+#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
+
+typedef struct VkPhysicalDeviceFeatures2KHR {
+    VkStructureType             sType;
+    void*                       pNext;
+    VkPhysicalDeviceFeatures    features;
+} VkPhysicalDeviceFeatures2KHR;
+
+typedef struct VkPhysicalDeviceProperties2KHR {
+    VkStructureType               sType;
+    void*                         pNext;
+    VkPhysicalDeviceProperties    properties;
+} VkPhysicalDeviceProperties2KHR;
+
+typedef struct VkFormatProperties2KHR {
+    VkStructureType       sType;
+    void*                 pNext;
+    VkFormatProperties    formatProperties;
+} VkFormatProperties2KHR;
+
+typedef struct VkImageFormatProperties2KHR {
+    VkStructureType            sType;
+    void*                      pNext;
+    VkImageFormatProperties    imageFormatProperties;
+} VkImageFormatProperties2KHR;
+
+typedef struct VkPhysicalDeviceImageFormatInfo2KHR {
+    VkStructureType       sType;
+    const void*           pNext;
+    VkFormat              format;
+    VkImageType           type;
+    VkImageTiling         tiling;
+    VkImageUsageFlags     usage;
+    VkImageCreateFlags    flags;
+} VkPhysicalDeviceImageFormatInfo2KHR;
+
+typedef struct VkQueueFamilyProperties2KHR {
+    VkStructureType            sType;
+    void*                      pNext;
+    VkQueueFamilyProperties    queueFamilyProperties;
+} VkQueueFamilyProperties2KHR;
+
+typedef struct VkPhysicalDeviceMemoryProperties2KHR {
+    VkStructureType                     sType;
+    void*                               pNext;
+    VkPhysicalDeviceMemoryProperties    memoryProperties;
+} VkPhysicalDeviceMemoryProperties2KHR;
+
+typedef struct VkSparseImageFormatProperties2KHR {
+    VkStructureType                  sType;
+    void*                            pNext;
+    VkSparseImageFormatProperties    properties;
+} VkSparseImageFormatProperties2KHR;
+
+typedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR {
+    VkStructureType          sType;
+    const void*              pNext;
+    VkFormat                 format;
+    VkImageType              type;
+    VkSampleCountFlagBits    samples;
+    VkImageUsageFlags        usage;
+    VkImageTiling            tiling;
+} VkPhysicalDeviceSparseImageFormatInfo2KHR;
+
+
+typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
+typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
+typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties);
+typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties);
+typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
+typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
+typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    VkPhysicalDeviceFeatures2KHR*               pFeatures);
+
+VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    VkPhysicalDeviceProperties2KHR*             pProperties);
+
+VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    VkFormat                                    format,
+    VkFormatProperties2KHR*                     pFormatProperties);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    const VkPhysicalDeviceImageFormatInfo2KHR*  pImageFormatInfo,
+    VkImageFormatProperties2KHR*                pImageFormatProperties);
+
+VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    uint32_t*                                   pQueueFamilyPropertyCount,
+    VkQueueFamilyProperties2KHR*                pQueueFamilyProperties);
+
+VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    VkPhysicalDeviceMemoryProperties2KHR*       pMemoryProperties);
+
+VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
+    VkPhysicalDevice                            physicalDevice,
+    const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
+    uint32_t*                                   pPropertyCount,
+    VkSparseImageFormatProperties2KHR*          pProperties);
+#endif
+
+#define VK_KHR_maintenance1 1
+#define VK_KHR_MAINTENANCE1_SPEC_VERSION  1
+#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
+
+typedef VkFlags VkCommandPoolTrimFlagsKHR;
+
+typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
+    VkDevice                                    device,
+    VkCommandPool                               commandPool,
+    VkCommandPoolTrimFlagsKHR                   flags);
+#endif
+
 #define VK_EXT_debug_report 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)