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 \
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
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
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
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
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
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
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
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
--- /dev/null
+#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);
+}
--- /dev/null
+#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);
+}
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
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,
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;
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;
typedef deUint32 VkWin32SurfaceCreateFlagsKHR;
+typedef deUint32 VkCommandPoolTrimFlagsKHR;
+
VK_DEFINE_PLATFORM_TYPE(XlibDisplayPtr, void*);
VK_DEFINE_PLATFORM_TYPE(XlibWindow, deUintptr);
VK_DEFINE_PLATFORM_TYPE(XlibVisualID, deUint32);
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;
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;
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);
AcquireNextImageKHRFunc acquireNextImageKHR;
QueuePresentKHRFunc queuePresentKHR;
CreateSharedSwapchainsKHRFunc createSharedSwapchainsKHR;
+TrimCommandPoolKHRFunc trimCommandPoolKHR;
DebugMarkerSetObjectTagEXTFunc debugMarkerSetObjectTagEXT;
DebugMarkerSetObjectNameEXTFunc debugMarkerSetObjectNameEXT;
CmdDebugMarkerBeginEXTFunc cmdDebugMarkerBeginEXT;
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);
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");
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");
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);
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;
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);
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),
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),
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);
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);
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;
}
}
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";
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));
}
{
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));
}
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";
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";
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;
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;
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;
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)
{
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);
#include "deStringUtil.hpp"
#include "deUniquePtr.hpp"
-#include "deMath.h"
#include "tcuImageCompare.hpp"
#include "tcuTexture.hpp"
struct TestParams
{
- union
+ union Data
{
- struct
+ struct Buffer
{
VkDeviceSize size;
} buffer;
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;
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,
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 |
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 |
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();
0u, // deUint32 baseMipLevel;
1u, // deUint32 mipLevels;
0u, // deUint32 baseArraySlice;
- 1u // deUint32 arraySize;
+ getArraySize(m_params.src.image)// deUint32 arraySize;
}
},
// destination image
0u, // deUint32 baseMipLevel;
1u, // deUint32 mipLevels;
0u, // deUint32 baseArraySlice;
- 1u // deUint32 arraySize;
+ getArraySize(m_params.dst.image)// deUint32 arraySize;
}
},
};
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))
{
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));
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 |
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 |
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 |
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 |
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(), ®ions[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);
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);
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);
{
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.
{
{
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);
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] =
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 =
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 =
*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;
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));
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 =
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);
-
- // check the result of resolving image
- {
- de::MovePtr<tcu::TextureLevel> resultTextureLevel = readImage(*m_destination, m_params.dst.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)
" 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"
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"));
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;
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));
}
{
+ 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());
+
+ {
const std::string description ("Resolve from image to image of different size");
const std::string testName ("diff_image_size");
#include "deUniquePtr.hpp"
#include "deSharedPtr.hpp"
#include "deInt32.h"
+#include "deSTLUtil.hpp"
namespace vkt
{
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)
"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();
}
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)
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();
}
#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;
"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);
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);
}
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;
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 ||
return tcu::TestStatus(results.getResult(), results.getMessage());
}
-void createImageFormatTypeTilingTests (tcu::TestCaseGroup* testGroup, ImageFormatPropertyCase params)
+// VK_KHR_get_physical_device_properties2
+
+Move<VkInstance> createInstanceWithExtension (const PlatformInterface& vkp, const char* extensionName)
{
- DE_ASSERT(params.format == VK_FORMAT_UNDEFINED);
+ const vector<VkExtensionProperties> instanceExts = enumerateInstanceExtensionProperties(vkp, DE_NULL);
+ vector<string> enabledExts;
- for (deUint32 formatNdx = VK_FORMAT_UNDEFINED+1; formatNdx < VK_CORE_FORMAT_LAST; ++formatNdx)
+ 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));
+
+ extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
+ extFeatures.pNext = DE_NULL;
+
+ vki.getPhysicalDeviceFeatures(devices[deviceNdx], &coreFeatures);
+ vki.getPhysicalDeviceFeatures2KHR(devices[deviceNdx], &extFeatures);
- addFunctionCase(testGroup, caseName, enumName, imageFormatProperties, params);
+ 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);
+
+ 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;
- 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)));
+ 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
}
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();
}
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;
return totalSize;
}
-
-
size_t getCurrentSystemMemoryUsage (const AllocationCallbackRecorder& allocRecoder)
{
const size_t systemAllocationOverhead = sizeof(void*)*2;
}
// 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)
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;
{
vktDrawIndirectTest.cpp
vktDrawInstancedTests.hpp
vktDrawInstancedTests.cpp
+ vktDrawShaderDrawParametersTests.hpp
+ vktDrawShaderDrawParametersTests.cpp
vktDrawSimpleTest.hpp
vktDrawSimpleTest.cpp
+ vktDrawNegativeViewportHeightTests.hpp
+ vktDrawNegativeViewportHeightTests.cpp
vktDrawBaseClass.hpp
vktDrawBaseClass.cpp
vktDrawCreateInfoUtil.hpp
--- /dev/null
+/*------------------------------------------------------------------------
+ * 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
--- /dev/null
+#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
--- /dev/null
+/*------------------------------------------------------------------------
+ * 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
--- /dev/null
+#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
#include "vktDrawInstancedTests.hpp"
#include "vktTestGroupUtil.hpp"
#include "vktBasicDrawTests.hpp"
+#include "vktDrawShaderDrawParametersTests.hpp"
+#include "vktDrawNegativeViewportHeightTests.hpp"
namespace vkt
{
{
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
// 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";
{
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"
}
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"
}
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"
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"
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 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<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, 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 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, viewType, colorFormat, makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, numLayers)));
+
+ 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<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);
// 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;
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)
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();
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));
//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);
}
//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),
}
//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);
{ 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},
};
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;
}
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);
const char* extensionGroups[] =
{
"VK_KHR_",
- "VK_EXT_"
+ "VK_EXT_",
+ "VK_KHX_"
};
for (size_t deviceExtNdx = 0; deviceExtNdx < deviceExtensions.size(); deviceExtNdx++)
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
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
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
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
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
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
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
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
"vkCreateWin32SurfaceKHR",
"vkGetPhysicalDeviceWin32PresentationSupportKHR",
+ # VK_KHR_get_physical_device_properties2
+ "vkGetPhysicalDeviceFeatures2KHR",
+ "vkGetPhysicalDeviceProperties2KHR",
+ "vkGetPhysicalDeviceFormatProperties2KHR",
+ "vkGetPhysicalDeviceQueueFamilyProperties2KHR",
+ "vkGetPhysicalDeviceImageFormatProperties2KHR",
+ "vkGetPhysicalDeviceMemoryProperties2KHR",
+ "vkGetPhysicalDeviceSparseImageFormatProperties2KHR",
+
# VK_EXT_debug_report
"vkCreateDebugReportCallbackEXT",
"vkDestroyDebugReportCallbackEXT",
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),
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,
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;
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;
#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)