dEQP-VK.image.store.with_format.cube_array.r8_snorm
dEQP-VK.image.store.with_format.cube_array.r8_snorm_single_layer
dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r32_sfloat
+dEQP-VK.image.store.with_format.buffer.r32_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.store.with_format.buffer.r32g32b32a32_uint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_uint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_uint_minalign
dEQP-VK.image.store.with_format.buffer.r32_uint
+dEQP-VK.image.store.with_format.buffer.r32_uint_minalign
dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_sint_minalign
dEQP-VK.image.store.with_format.buffer.r32_sint
+dEQP-VK.image.store.with_format.buffer.r32_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_snorm_minalign
dEQP-VK.image.store.with_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.store.with_format.buffer.b10g11r11_ufloat_pack32_minalign
dEQP-VK.image.store.with_format.buffer.r32g32_sfloat
+dEQP-VK.image.store.with_format.buffer.r32g32_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_sfloat
+dEQP-VK.image.store.with_format.buffer.r16g16_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r16_sfloat
+dEQP-VK.image.store.with_format.buffer.r16_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.store.with_format.buffer.a2b10g10r10_uint_pack32_minalign
dEQP-VK.image.store.with_format.buffer.r32g32_uint
+dEQP-VK.image.store.with_format.buffer.r32g32_uint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_uint
+dEQP-VK.image.store.with_format.buffer.r16g16_uint_minalign
dEQP-VK.image.store.with_format.buffer.r16_uint
+dEQP-VK.image.store.with_format.buffer.r16_uint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_uint
+dEQP-VK.image.store.with_format.buffer.r8g8_uint_minalign
dEQP-VK.image.store.with_format.buffer.r8_uint
+dEQP-VK.image.store.with_format.buffer.r8_uint_minalign
dEQP-VK.image.store.with_format.buffer.r32g32_sint
+dEQP-VK.image.store.with_format.buffer.r32g32_sint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_sint
+dEQP-VK.image.store.with_format.buffer.r16g16_sint_minalign
dEQP-VK.image.store.with_format.buffer.r16_sint
+dEQP-VK.image.store.with_format.buffer.r16_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_sint
+dEQP-VK.image.store.with_format.buffer.r8g8_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8_sint
+dEQP-VK.image.store.with_format.buffer.r8_sint_minalign
dEQP-VK.image.store.with_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.store.with_format.buffer.a2b10g10r10_unorm_pack32_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_unorm
+dEQP-VK.image.store.with_format.buffer.r16g16_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r16_unorm
+dEQP-VK.image.store.with_format.buffer.r16_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_unorm
+dEQP-VK.image.store.with_format.buffer.r8g8_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r8_unorm
+dEQP-VK.image.store.with_format.buffer.r8_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_snorm
+dEQP-VK.image.store.with_format.buffer.r16g16_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r16_snorm
+dEQP-VK.image.store.with_format.buffer.r16_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_snorm
+dEQP-VK.image.store.with_format.buffer.r8g8_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r8_snorm
+dEQP-VK.image.store.with_format.buffer.r8_snorm_minalign
dEQP-VK.image.store.without_format.1d.r32g32b32a32_sfloat
dEQP-VK.image.store.without_format.1d.r16g16b16a16_sfloat
dEQP-VK.image.store.without_format.1d.r32_sfloat
dEQP-VK.image.store.without_format.cube_array.r8g8_snorm
dEQP-VK.image.store.without_format.cube_array.r8_snorm
dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r32_sfloat
+dEQP-VK.image.store.without_format.buffer.r32_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.store.without_format.buffer.r32g32b32a32_uint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_uint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_uint_minalign
dEQP-VK.image.store.without_format.buffer.r32_uint
+dEQP-VK.image.store.without_format.buffer.r32_uint_minalign
dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_sint_minalign
dEQP-VK.image.store.without_format.buffer.r32_sint
+dEQP-VK.image.store.without_format.buffer.r32_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_snorm_minalign
dEQP-VK.image.store.without_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.store.without_format.buffer.b10g11r11_ufloat_pack32_minalign
dEQP-VK.image.store.without_format.buffer.r32g32_sfloat
+dEQP-VK.image.store.without_format.buffer.r32g32_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_sfloat
+dEQP-VK.image.store.without_format.buffer.r16g16_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r16_sfloat
+dEQP-VK.image.store.without_format.buffer.r16_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.store.without_format.buffer.a2b10g10r10_uint_pack32_minalign
dEQP-VK.image.store.without_format.buffer.r32g32_uint
+dEQP-VK.image.store.without_format.buffer.r32g32_uint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_uint
+dEQP-VK.image.store.without_format.buffer.r16g16_uint_minalign
dEQP-VK.image.store.without_format.buffer.r16_uint
+dEQP-VK.image.store.without_format.buffer.r16_uint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_uint
+dEQP-VK.image.store.without_format.buffer.r8g8_uint_minalign
dEQP-VK.image.store.without_format.buffer.r8_uint
+dEQP-VK.image.store.without_format.buffer.r8_uint_minalign
dEQP-VK.image.store.without_format.buffer.r32g32_sint
+dEQP-VK.image.store.without_format.buffer.r32g32_sint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_sint
+dEQP-VK.image.store.without_format.buffer.r16g16_sint_minalign
dEQP-VK.image.store.without_format.buffer.r16_sint
+dEQP-VK.image.store.without_format.buffer.r16_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_sint
+dEQP-VK.image.store.without_format.buffer.r8g8_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8_sint
+dEQP-VK.image.store.without_format.buffer.r8_sint_minalign
dEQP-VK.image.store.without_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.store.without_format.buffer.a2b10g10r10_unorm_pack32_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_unorm
+dEQP-VK.image.store.without_format.buffer.r16g16_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r16_unorm
+dEQP-VK.image.store.without_format.buffer.r16_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_unorm
+dEQP-VK.image.store.without_format.buffer.r8g8_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r8_unorm
+dEQP-VK.image.store.without_format.buffer.r8_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_snorm
+dEQP-VK.image.store.without_format.buffer.r16g16_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r16_snorm
+dEQP-VK.image.store.without_format.buffer.r16_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_snorm
+dEQP-VK.image.store.without_format.buffer.r8g8_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r8_snorm
+dEQP-VK.image.store.without_format.buffer.r8_snorm_minalign
dEQP-VK.image.load_store.with_format.1d.r32g32b32a32_sfloat
dEQP-VK.image.load_store.with_format.1d.r16g16b16a16_sfloat
dEQP-VK.image.load_store.with_format.1d.r32_sfloat
dEQP-VK.image.load_store.with_format.cube_array.r8_snorm
dEQP-VK.image.load_store.with_format.cube_array.r8_snorm_single_layer
dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r32_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32_uint
+dEQP-VK.image.load_store.with_format.buffer.r32_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32_sint
+dEQP-VK.image.load_store.with_format.buffer.r32_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store.with_format.buffer.b10g11r11_ufloat_pack32_minalign
+dEQP-VK.image.load_store.with_format.buffer.b10g11r11_ufloat_pack32_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r16_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_uint_pack32_minalign
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_uint_pack32_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32_uint
+dEQP-VK.image.load_store.with_format.buffer.r32g32_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_uint
+dEQP-VK.image.load_store.with_format.buffer.r16g16_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_uint
+dEQP-VK.image.load_store.with_format.buffer.r16_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_uint
+dEQP-VK.image.load_store.with_format.buffer.r8g8_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_uint
+dEQP-VK.image.load_store.with_format.buffer.r8_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32_sint
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_sint
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_sint
+dEQP-VK.image.load_store.with_format.buffer.r16_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_sint
+dEQP-VK.image.load_store.with_format.buffer.r8g8_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_sint
+dEQP-VK.image.load_store.with_format.buffer.r8_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_unorm_pack32_minalign
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_unorm_pack32_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_unorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_unorm
+dEQP-VK.image.load_store.with_format.buffer.r16_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_unorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_unorm
+dEQP-VK.image.load_store.with_format.buffer.r8_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_snorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_snorm
+dEQP-VK.image.load_store.with_format.buffer.r16_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_snorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_snorm
+dEQP-VK.image.load_store.with_format.buffer.r8_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.1d.r32g32b32a32_sfloat
dEQP-VK.image.load_store.without_format.1d.r16g16b16a16_sfloat
dEQP-VK.image.load_store.without_format.1d.r32_sfloat
dEQP-VK.image.load_store.without_format.cube_array.r8g8_snorm
dEQP-VK.image.load_store.without_format.cube_array.r8_snorm
dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r32_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32_uint
+dEQP-VK.image.load_store.without_format.buffer.r32_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32_sint
+dEQP-VK.image.load_store.without_format.buffer.r32_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store.without_format.buffer.b10g11r11_ufloat_pack32_minalign
+dEQP-VK.image.load_store.without_format.buffer.b10g11r11_ufloat_pack32_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r16_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_uint_pack32_minalign
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_uint_pack32_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32_uint
+dEQP-VK.image.load_store.without_format.buffer.r32g32_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_uint
+dEQP-VK.image.load_store.without_format.buffer.r16g16_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_uint
+dEQP-VK.image.load_store.without_format.buffer.r16_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_uint
+dEQP-VK.image.load_store.without_format.buffer.r8g8_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_uint
+dEQP-VK.image.load_store.without_format.buffer.r8_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32_sint
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_sint
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_sint
+dEQP-VK.image.load_store.without_format.buffer.r16_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_sint
+dEQP-VK.image.load_store.without_format.buffer.r8g8_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_sint
+dEQP-VK.image.load_store.without_format.buffer.r8_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_unorm_pack32_minalign
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_unorm_pack32_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_unorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_unorm
+dEQP-VK.image.load_store.without_format.buffer.r16_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_unorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_unorm
+dEQP-VK.image.load_store.without_format.buffer.r8_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_snorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_snorm
+dEQP-VK.image.load_store.without_format.buffer.r16_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_snorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_snorm
+dEQP-VK.image.load_store.without_format.buffer.r8_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_snorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_uint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_uint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_sint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_sint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_unorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_unorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_snorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_snorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_uint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_uint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_unorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_unorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_snorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_snorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sfloat_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sfloat_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_uint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_uint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sfloat_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sfloat_minalign_uniform
dEQP-VK.image.load_store_multisample.2d.r32g32b32a32_sfloat.samples_2
dEQP-VK.image.load_store_multisample.2d.r32g32b32a32_sfloat.samples_4
dEQP-VK.image.load_store_multisample.2d.r32g32b32a32_sfloat.samples_8
class TexelBufferInstanceBuffers
{
public:
- TexelBufferInstanceBuffers (const vk::DeviceInterface& vki,
+ TexelBufferInstanceBuffers (vkt::Context& context,
+ const vk::DeviceInterface& vki,
vk::VkDevice device,
vk::Allocator& allocator,
vk::VkDescriptorType descriptorType,
const vk::Allocation& memory,
const de::ArrayBuffer<deUint8>& data);
+ deUint32 getViewOffset (vkt::Context& context,
+ bool hasViewOffset,
+ vk::VkDescriptorType descriptorType);
+
public:
static int getFetchPos (int fetchPosNdx);
tcu::Vec4 fetchTexelValue (int fetchPosNdx, int setNdx) const;
enum
{
BUFFER_SIZE = 512,
- VIEW_OFFSET_VALUE = 256,
VIEW_DATA_SIZE = 256, //!< size in bytes
VIEW_WIDTH = 64, //!< size in pixels
};
const std::vector<vk::VkBufferMemoryBarrier> m_bufferBarrier;
};
-TexelBufferInstanceBuffers::TexelBufferInstanceBuffers (const vk::DeviceInterface& vki,
+deUint32 TexelBufferInstanceBuffers::getViewOffset(vkt::Context& context,
+ bool hasViewOffset,
+ vk::VkDescriptorType descriptorType)
+{
+ if (!hasViewOffset)
+ return 0u;
+
+ if (!context.getTexelBufferAlignmentFeatures().texelBufferAlignment)
+ return (deUint32)context.getDeviceProperties().limits.minTexelBufferOffsetAlignment;
+
+ vk::VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT alignmentProperties;
+ deMemset(&alignmentProperties, 0, sizeof(alignmentProperties));
+ alignmentProperties.sType = vk::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT;
+
+ vk::VkPhysicalDeviceProperties2 properties2;
+ deMemset(&properties2, 0, sizeof(properties2));
+ properties2.sType = vk::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+ properties2.pNext = &alignmentProperties;
+
+ context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties2);
+
+ vk::VkBool32 singleTexelAlignment = isUniformDescriptorType(descriptorType) ? alignmentProperties.uniformTexelBufferOffsetSingleTexelAlignment :
+ alignmentProperties.storageTexelBufferOffsetSingleTexelAlignment;
+ vk::VkDeviceSize align = isUniformDescriptorType(descriptorType) ? alignmentProperties.uniformTexelBufferOffsetAlignmentBytes :
+ alignmentProperties.storageTexelBufferOffsetAlignmentBytes;
+
+ // format is rgba8
+ if (singleTexelAlignment)
+ return de::min(4u, (deUint32)align);
+ else
+ return (deUint32)align;
+}
+
+TexelBufferInstanceBuffers::TexelBufferInstanceBuffers (vkt::Context& context,
+ const vk::DeviceInterface& vki,
vk::VkDevice device,
vk::Allocator& allocator,
vk::VkDescriptorType descriptorType,
: m_numTexelBuffers (getInterfaceNumResources(shaderInterface) * getDescriptorSetCount(descriptorSetCount))
, m_imageFormat (tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8)
, m_shaderInterface (shaderInterface)
- , m_viewOffset ((hasViewOffset) ? ((deUint32)VIEW_OFFSET_VALUE) : (0u))
+ , m_viewOffset (getViewOffset(context, hasViewOffset, descriptorType))
, m_sourceBuffer (createSourceBuffers(m_imageFormat, m_numTexelBuffers))
, m_sourceView (createSourceViews(m_sourceBuffer, m_imageFormat, m_numTexelBuffers, m_viewOffset))
, m_bufferMemory ()
, m_updateBuilder ()
, m_descriptorSetLayouts (createDescriptorSetLayouts(m_vki, m_device, m_descriptorType, m_descriptorSetCount, m_shaderInterface, m_stageFlags, m_updateMethod))
, m_pipelineLayout (createPipelineLayout(m_vki, m_device, m_descriptorSetLayouts))
- , m_texelBuffers (m_vki, m_device, m_allocator, m_descriptorType, m_descriptorSetCount, m_shaderInterface, m_nonzeroViewOffset)
+ , m_texelBuffers (context, m_vki, m_device, m_allocator, m_descriptorType, m_descriptorSetCount, m_shaderInterface, m_nonzeroViewOffset)
, m_descriptorPool (createDescriptorPool(m_vki, m_device, m_descriptorType, m_descriptorSetCount, m_shaderInterface))
, m_descriptorsPerSet ()
, m_descriptorSets (createDescriptorSets(m_vki, m_updateMethod, m_device, m_descriptorType, m_descriptorSetCount, m_shaderInterface, m_descriptorSetLayouts, *m_descriptorPool, m_texelBuffers, m_updateBuilder, m_updateTemplates, m_updateRegistry, m_descriptorsPerSet, *m_pipelineLayout))
, m_allocator (context.getDefaultAllocator())
, m_updateTemplates ()
, m_result (m_vki, m_device, m_allocator)
- , m_texelBuffers (m_vki, m_device, m_allocator, m_descriptorType, m_descriptorSetCount, m_shaderInterface, m_nonzeroViewOffset)
+ , m_texelBuffers (context, m_vki, m_device, m_allocator, m_descriptorType, m_descriptorSetCount, m_shaderInterface, m_nonzeroViewOffset)
, m_updateRegistry ()
, m_updateBuilder ()
, m_descriptorsPerSet ()
namespace
{
+// Check for three-component (non-packed) format, i.e. pixel size is a multiple of 3.
+bool formatHasThreeComponents(VkFormat format)
+{
+ const tcu::TextureFormat texFormat = mapVkFormat(format);
+ return (getPixelSize(texFormat) % 3) == 0;
+}
+
+VkFormat getSingleComponentFormat(VkFormat format)
+{
+ tcu::TextureFormat texFormat = mapVkFormat(format);
+ texFormat = tcu::TextureFormat(tcu::TextureFormat::R, texFormat.type);
+ return mapTextureFormat(texFormat);
+}
+
inline VkBufferImageCopy makeBufferImageCopy (const Texture& texture)
{
return image::makeBufferImageCopy(makeExtent3D(texture.layerSize()), texture.numLayers());
{
FLAG_SINGLE_LAYER_BIND = 0x1, //!< Run the shader multiple times, each time binding a different layer.
FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER = 0x2, //!< Declare the format of the images in the shader code
+ FLAG_MINALIGN = 0x4, //!< Use bufferview offset that matches the advertised minimum alignment
};
StoreTest (tcu::TestContext& testCtx,
const VkFormat m_format;
const bool m_declareImageFormatInShader;
const bool m_singleLayerBind;
+ const bool m_minalign;
};
StoreTest::StoreTest (tcu::TestContext& testCtx,
, m_format (format)
, m_declareImageFormatInShader ((flags & FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER) != 0)
, m_singleLayerBind ((flags & FLAG_SINGLE_LAYER_BIND) != 0)
+ , m_minalign ((flags & FLAG_MINALIGN) != 0)
{
if (m_singleLayerBind)
DE_ASSERT(m_texture.numLayers() > 1);
const std::string formatQualifierStr = getShaderImageFormatQualifier(mapVkFormat(m_format));
const std::string imageTypeStr = getShaderImageType(mapVkFormat(m_format), usedImageType);
- for (deUint32 variant = 0; variant <= 1; variant++)
- {
- std::ostringstream src;
- src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
- << "\n"
- << "layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n";
- if (variant == 0)
- src << "layout (binding = 0, " << formatQualifierStr << ") writeonly uniform " << imageTypeStr << " u_image;\n";
- else
- src << "layout (binding = 0) writeonly uniform " << imageTypeStr << " u_image;\n";
-
- if (m_singleLayerBind)
- src << "layout (binding = 1) readonly uniform Constants {\n"
- << " int u_layerNdx;\n"
- << "};\n";
-
- src << "\n"
- << "void main (void)\n"
- << "{\n"
- << " int gx = int(gl_GlobalInvocationID.x);\n"
- << " int gy = int(gl_GlobalInvocationID.y);\n"
- << " int gz = " << (m_singleLayerBind ? "u_layerNdx" : "int(gl_GlobalInvocationID.z)") << ";\n"
- << " imageStore(u_image, " << texelCoordStr << ", " << colorExpr << ");\n"
- << "}\n";
-
- programCollection.glslSources.add(variant == 0 ? "comp" : "comp_fmt_unknown") << glu::ComputeSource(src.str());
- }
+ std::ostringstream src;
+ src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
+ << "\n"
+ << "layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n";
+ if (m_declareImageFormatInShader)
+ src << "layout (binding = 0, " << formatQualifierStr << ") writeonly uniform " << imageTypeStr << " u_image;\n";
+ else
+ src << "layout (binding = 0) writeonly uniform " << imageTypeStr << " u_image;\n";
+
+ if (m_singleLayerBind)
+ src << "layout (binding = 1) readonly uniform Constants {\n"
+ << " int u_layerNdx;\n"
+ << "};\n";
+
+ src << "\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " int gx = int(gl_GlobalInvocationID.x);\n"
+ << " int gy = int(gl_GlobalInvocationID.y);\n"
+ << " int gz = " << (m_singleLayerBind ? "u_layerNdx" : "int(gl_GlobalInvocationID.z)") << ";\n"
+ << " imageStore(u_image, " << texelCoordStr << ", " << colorExpr << ");\n"
+ << "}\n";
+
+ programCollection.glslSources.add("comp") << glu::ComputeSource(src.str());
}
//! Generic test iteration algorithm for image tests
const Texture& texture,
const VkFormat format,
const bool declareImageFormatInShader,
- const bool singleLayerBind);
+ const bool singleLayerBind,
+ const bool minalign,
+ const bool bufferLoadUniform);
tcu::TestStatus iterate (void);
virtual void commandBindDescriptorsForLayer (const VkCommandBuffer cmdBuffer,
const VkPipelineLayout pipelineLayout,
const int layerNdx) = 0;
+ virtual deUint32 getViewOffset (Context& context,
+ const VkFormat format,
+ bool uniform);
const Texture m_texture;
const VkFormat m_format;
const bool m_declareImageFormatInShader;
const bool m_singleLayerBind;
+ const bool m_minalign;
+ const bool m_bufferLoadUniform;
+ const deUint32 m_srcViewOffset;
+ const deUint32 m_dstViewOffset;
};
-BaseTestInstance::BaseTestInstance (Context& context, const Texture& texture, const VkFormat format, const bool declareImageFormatInShader, const bool singleLayerBind)
+BaseTestInstance::BaseTestInstance (Context& context, const Texture& texture, const VkFormat format, const bool declareImageFormatInShader, const bool singleLayerBind, const bool minalign, const bool bufferLoadUniform)
: TestInstance (context)
, m_texture (texture)
, m_format (format)
, m_declareImageFormatInShader (declareImageFormatInShader)
, m_singleLayerBind (singleLayerBind)
+ , m_minalign (minalign)
+ , m_bufferLoadUniform (bufferLoadUniform)
+ , m_srcViewOffset (getViewOffset(context, format, m_bufferLoadUniform))
+ , m_dstViewOffset (getViewOffset(context, formatHasThreeComponents(format) ? getSingleComponentFormat(format) : format, false))
{
}
const VkQueue queue = m_context.getUniversalQueue();
const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
- const Unique<VkShaderModule> shaderModule(createShaderModule(vk, device, m_context.getBinaryCollection().get(m_declareImageFormatInShader ? "comp" : "comp_fmt_unknown"), 0));
+ const Unique<VkShaderModule> shaderModule(createShaderModule(vk, device, m_context.getBinaryCollection().get("comp"), 0));
const VkDescriptorSetLayout descriptorSetLayout = prepareDescriptors();
const Unique<VkPipelineLayout> pipelineLayout(makePipelineLayout(vk, device, descriptorSetLayout));
const Texture& texture,
const VkFormat format,
const bool declareImageFormatInShader,
- const bool singleLayerBind);
+ const bool singleLayerBind,
+ const bool minalign);
protected:
tcu::TestStatus verifyResult (void);
const VkDeviceSize m_imageSizeBytes;
};
-StoreTestInstance::StoreTestInstance (Context& context, const Texture& texture, const VkFormat format, const bool declareImageFormatInShader, const bool singleLayerBind)
- : BaseTestInstance (context, texture, format, declareImageFormatInShader, singleLayerBind)
+deUint32 BaseTestInstance::getViewOffset(Context& context,
+ const VkFormat format,
+ bool uniform)
+{
+ if (m_minalign)
+ {
+ if (!context.getTexelBufferAlignmentFeatures().texelBufferAlignment)
+ return (deUint32)context.getDeviceProperties().limits.minTexelBufferOffsetAlignment;
+
+ VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT alignmentProperties;
+ deMemset(&alignmentProperties, 0, sizeof(alignmentProperties));
+ alignmentProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT;
+
+ VkPhysicalDeviceProperties2 properties2;
+ deMemset(&properties2, 0, sizeof(properties2));
+ properties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+ properties2.pNext = &alignmentProperties;
+
+ context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties2);
+
+ VkBool32 singleTexelAlignment = uniform ? alignmentProperties.uniformTexelBufferOffsetSingleTexelAlignment :
+ alignmentProperties.storageTexelBufferOffsetSingleTexelAlignment;
+ VkDeviceSize align = uniform ? alignmentProperties.uniformTexelBufferOffsetAlignmentBytes :
+ alignmentProperties.storageTexelBufferOffsetAlignmentBytes;
+
+ VkDeviceSize texelSize = formatHasThreeComponents(format) ? tcu::getChannelSize(vk::mapVkFormat(format).type) : tcu::getPixelSize(vk::mapVkFormat(format));
+
+ if (singleTexelAlignment)
+ align = de::min(align, texelSize);
+
+ return (deUint32)align;
+ }
+
+ return 0;
+}
+
+StoreTestInstance::StoreTestInstance (Context& context, const Texture& texture, const VkFormat format, const bool declareImageFormatInShader, const bool singleLayerBind, const bool minalign)
+ : BaseTestInstance (context, texture, format, declareImageFormatInShader, singleLayerBind, minalign, false)
, m_imageSizeBytes (getImageSizeBytes(texture.size(), format))
{
const DeviceInterface& vk = m_context.getDeviceInterface();
m_imageBuffer = de::MovePtr<Buffer>(new Buffer(
vk, device, allocator,
- makeBufferCreateInfo(m_imageSizeBytes, VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT),
+ makeBufferCreateInfo(m_imageSizeBytes + m_dstViewOffset, VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT),
MemoryRequirement::HostVisible));
}
const Allocation& alloc = m_imageBuffer->getAllocation();
invalidateAlloc(vk, device, alloc);
- const tcu::ConstPixelBufferAccess result(mapVkFormat(m_format), imageSize, alloc.getHostPtr());
+ const tcu::ConstPixelBufferAccess result(mapVkFormat(m_format), imageSize, (const char *)alloc.getHostPtr() + m_dstViewOffset);
if (comparePixelBuffers(m_context.getTestContext().getLog(), m_texture, m_format, reference.getAccess(), result))
return tcu::TestStatus::pass("Passed");
const Texture& texture,
const VkFormat format,
const bool declareImageFormatInShader,
- const bool singleLayerBind);
+ const bool singleLayerBind,
+ const bool minalign);
protected:
VkDescriptorSetLayout prepareDescriptors (void);
const Texture& texture,
const VkFormat format,
const bool declareImageFormatInShader,
- const bool singleLayerBind)
- : StoreTestInstance (context, texture, format, declareImageFormatInShader, singleLayerBind)
+ const bool singleLayerBind,
+ const bool minalign)
+ : StoreTestInstance (context, texture, format, declareImageFormatInShader, singleLayerBind, minalign)
, m_constantsBufferChunkSizeBytes (getOptimalUniformBufferChunkSize(context.getInstanceInterface(), context.getPhysicalDevice(), sizeof(deUint32)))
, m_allDescriptorSets (texture.numLayers())
, m_allImageViews (texture.numLayers())
BufferStoreTestInstance (Context& context,
const Texture& texture,
const VkFormat format,
- const bool declareImageFormatInShader);
+ const bool declareImageFormatInShader,
+ const bool minalign);
protected:
VkDescriptorSetLayout prepareDescriptors (void);
BufferStoreTestInstance::BufferStoreTestInstance (Context& context,
const Texture& texture,
const VkFormat format,
- const bool declareImageFormatInShader)
- : StoreTestInstance(context, texture, format, declareImageFormatInShader, false)
+ const bool declareImageFormatInShader,
+ const bool minalign)
+ : StoreTestInstance(context, texture, format, declareImageFormatInShader, false, minalign)
{
}
.build(vk, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
m_descriptorSet = makeDescriptorSet(vk, device, *m_descriptorPool, *m_descriptorSetLayout);
- m_bufferView = makeBufferView(vk, device, m_imageBuffer->get(), m_format, 0ull, m_imageSizeBytes);
+ m_bufferView = makeBufferView(vk, device, m_imageBuffer->get(), m_format, m_dstViewOffset, m_imageSizeBytes);
return *m_descriptorSetLayout; // not passing the ownership
}
void BufferStoreTestInstance::commandAfterCompute (const VkCommandBuffer cmdBuffer)
{
- commandBufferWriteBarrierBeforeHostRead(m_context, cmdBuffer, m_imageBuffer->get(), m_imageSizeBytes);
+ commandBufferWriteBarrierBeforeHostRead(m_context, cmdBuffer, m_imageBuffer->get(), m_imageSizeBytes + m_dstViewOffset);
}
class LoadStoreTest : public TestCase
FLAG_SINGLE_LAYER_BIND = 1 << 0, //!< Run the shader multiple times, each time binding a different layer.
FLAG_RESTRICT_IMAGES = 1 << 1, //!< If given, images in the shader will be qualified with "restrict".
FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER = 1 << 2, //!< Declare the format of the images in the shader code
+ FLAG_MINALIGN = 1 << 3, //!< Use bufferview offset that matches the advertised minimum alignment
+ FLAG_UNIFORM_TEXEL_BUFFER = 1 << 4, //!< Load from a uniform texel buffer rather than a storage texel buffer
};
LoadStoreTest (tcu::TestContext& testCtx,
const bool m_declareImageFormatInShader; //!< Whether the shader will specify the format layout qualifier of the images
const bool m_singleLayerBind;
const bool m_restrictImages;
+ const bool m_minalign;
+ bool m_bufferLoadUniform;
};
LoadStoreTest::LoadStoreTest (tcu::TestContext& testCtx,
, m_declareImageFormatInShader ((flags & FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER) != 0)
, m_singleLayerBind ((flags & FLAG_SINGLE_LAYER_BIND) != 0)
, m_restrictImages ((flags & FLAG_RESTRICT_IMAGES) != 0)
+ , m_minalign ((flags & FLAG_MINALIGN) != 0)
+ , m_bufferLoadUniform ((flags & FLAG_UNIFORM_TEXEL_BUFFER) != 0)
{
if (m_singleLayerBind)
DE_ASSERT(m_texture.numLayers() > 1);
context.getPhysicalDevice(),
m_imageFormat));
- if (!m_declareImageFormatInShader)
+ if (!m_bufferLoadUniform && !m_declareImageFormatInShader)
context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_SHADER_STORAGE_IMAGE_READ_WITHOUT_FORMAT);
if (m_texture.type() == IMAGE_TYPE_CUBE_ARRAY)
if ((m_texture.type() == IMAGE_TYPE_BUFFER) && !(imageFormatProperties.bufferFeatures))
TCU_THROW(NotSupportedError, "Underlying format not supported at all for buffers");
+
+ if (formatHasThreeComponents(m_format))
+ {
+ // When the source buffer is three-component, the destination buffer is single-component.
+ VkFormat dstFormat = getSingleComponentFormat(m_format);
+ const vk::VkFormatProperties dstFormatProperties (vk::getPhysicalDeviceFormatProperties(context.getInstanceInterface(),
+ context.getPhysicalDevice(),
+ dstFormat));
+
+ if (m_texture.type() == IMAGE_TYPE_BUFFER && !(dstFormatProperties.bufferFeatures & VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT))
+ TCU_THROW(NotSupportedError, "Format not supported for storage texel buffers");
+ }
+ else
+ if (m_texture.type() == IMAGE_TYPE_BUFFER && !(formatProperties.bufferFeatures & VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT))
+ TCU_THROW(NotSupportedError, "Format not supported for storage texel buffers");
+
+ if (m_bufferLoadUniform && m_texture.type() == IMAGE_TYPE_BUFFER && !(formatProperties.bufferFeatures & VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT))
+ TCU_THROW(NotSupportedError, "Format not supported for uniform texel buffers");
}
void LoadStoreTest::initPrograms (SourceCollections& programCollection) const
{
- const int dimension = (m_singleLayerBind ? m_texture.layerDimension() : m_texture.dimension());
- const ImageType usedImageType = (m_singleLayerBind ? getImageTypeForSingleLayer(m_texture.type()) : m_texture.type());
- const std::string formatQualifierStr = getShaderImageFormatQualifier(mapVkFormat(m_format));
- const std::string imageTypeStr = getShaderImageType(mapVkFormat(m_format), usedImageType);
- const std::string maybeRestrictStr = (m_restrictImages ? "restrict " : "");
- const std::string xMax = de::toString(m_texture.size().x() - 1);
+ const tcu::TextureFormat texFormat = mapVkFormat(m_format);
+ const int dimension = (m_singleLayerBind ? m_texture.layerDimension() : m_texture.dimension());
+ const ImageType usedImageType = (m_singleLayerBind ? getImageTypeForSingleLayer(m_texture.type()) : m_texture.type());
+ const std::string formatQualifierStr = getShaderImageFormatQualifier(texFormat);
+ const std::string uniformTypeStr = getFormatPrefix(texFormat) + "textureBuffer";
+ const std::string imageTypeStr = getShaderImageType(texFormat, usedImageType);
+ const std::string maybeRestrictStr = (m_restrictImages ? "restrict " : "");
+ const std::string xMax = de::toString(m_texture.size().x() - 1);
+
+ std::ostringstream src;
+ src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
+ << "\n";
+ if (!m_declareImageFormatInShader)
+ {
+ src << "#extension GL_EXT_shader_image_load_formatted : require\n";
+ }
+ src << "layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n";
+ if (m_bufferLoadUniform)
+ src << "layout (binding = 0) uniform " << uniformTypeStr << " u_image0;\n";
+ else if (m_declareImageFormatInShader)
+ src << "layout (binding = 0, " << formatQualifierStr << ") " << maybeRestrictStr << "readonly uniform " << imageTypeStr << " u_image0;\n";
+ else
+ src << "layout (binding = 0) " << maybeRestrictStr << "readonly uniform " << imageTypeStr << " u_image0;\n";
- for (deUint32 variant = 0; variant <= 1; variant++)
+ if (formatHasThreeComponents(m_format))
+ src << "layout (binding = 1) " << maybeRestrictStr << "writeonly uniform " << imageTypeStr << " u_image1;\n";
+ else
+ src << "layout (binding = 1, " << formatQualifierStr << ") " << maybeRestrictStr << "writeonly uniform " << imageTypeStr << " u_image1;\n";
+
+ src << "\n"
+ << "void main (void)\n"
+ << "{\n";
+ switch (dimension)
{
- std::ostringstream src;
- src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
- << "\n";
- if (variant != 0)
+ default: DE_ASSERT(0); // fallthrough
+ case 1:
+ if (m_bufferLoadUniform)
{
- src << "#extension GL_EXT_shader_image_load_formatted : require\n";
+ // for three-component formats, the dst buffer is single-component and the shader
+ // expands the store into 3 component-wise stores.
+ std::string type = getFormatPrefix(texFormat) + "vec4";
+ src << " int pos = int(gl_GlobalInvocationID.x);\n"
+ " " << type << " t = texelFetch(u_image0, " + xMax + "-pos);\n";
+ if (formatHasThreeComponents(m_format))
+ {
+ src << " imageStore(u_image1, 3*pos+0, " << type << "(t.x));\n";
+ src << " imageStore(u_image1, 3*pos+1, " << type << "(t.y));\n";
+ src << " imageStore(u_image1, 3*pos+2, " << type << "(t.z));\n";
+ }
+ else
+ src << " imageStore(u_image1, pos, t);\n";
}
- src << "layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n";
- if (variant == 0)
- src << "layout (binding = 0, " << formatQualifierStr << ") " << maybeRestrictStr << "readonly uniform " << imageTypeStr << " u_image0;\n";
else
- src << "layout (binding = 0) " << maybeRestrictStr << "readonly uniform " << imageTypeStr << " u_image0;\n";
- src << "layout (binding = 1, " << formatQualifierStr << ") " << maybeRestrictStr << "writeonly uniform " << imageTypeStr << " u_image1;\n"
- << "\n"
- << "void main (void)\n"
- << "{\n"
- << (dimension == 1 ?
+ src <<
" int pos = int(gl_GlobalInvocationID.x);\n"
- " imageStore(u_image1, pos, imageLoad(u_image0, " + xMax + "-pos));\n"
- : dimension == 2 ?
- " ivec2 pos = ivec2(gl_GlobalInvocationID.xy);\n"
- " imageStore(u_image1, pos, imageLoad(u_image0, ivec2(" + xMax + "-pos.x, pos.y)));\n"
- : dimension == 3 ?
- " ivec3 pos = ivec3(gl_GlobalInvocationID);\n"
- " imageStore(u_image1, pos, imageLoad(u_image0, ivec3(" + xMax + "-pos.x, pos.y, pos.z)));\n"
- : "")
- << "}\n";
-
- programCollection.glslSources.add(variant == 0 ? "comp" : "comp_fmt_unknown") << glu::ComputeSource(src.str());
+ " imageStore(u_image1, pos, imageLoad(u_image0, " + xMax + "-pos));\n";
+ break;
+ case 2:
+ src <<
+ " ivec2 pos = ivec2(gl_GlobalInvocationID.xy);\n"
+ " imageStore(u_image1, pos, imageLoad(u_image0, ivec2(" + xMax + "-pos.x, pos.y)));\n";
+ break;
+ case 3:
+ src <<
+ " ivec3 pos = ivec3(gl_GlobalInvocationID);\n"
+ " imageStore(u_image1, pos, imageLoad(u_image0, ivec3(" + xMax + "-pos.x, pos.y, pos.z)));\n";
+ break;
}
+ src << "}\n";
+
+ programCollection.glslSources.add("comp") << glu::ComputeSource(src.str());
}
//! Load/store test base implementation
const VkFormat format,
const VkFormat imageFormat,
const bool declareImageFormatInShader,
- const bool singleLayerBind);
+ const bool singleLayerBind,
+ const bool minalign,
+ const bool bufferLoadUniform);
protected:
virtual Buffer* getResultBuffer (void) const = 0; //!< Get the buffer that contains the result image
const VkDeviceSize m_imageSizeBytes;
const VkFormat m_imageFormat; //!< Image format (for storage, may be different than texture format)
tcu::TextureLevel m_referenceImage; //!< Used as input data and later to verify result image
+
+ bool m_bufferLoadUniform;
+ VkDescriptorType m_bufferLoadDescriptorType;
+ VkBufferUsageFlagBits m_bufferLoadUsageBit;
};
LoadStoreTestInstance::LoadStoreTestInstance (Context& context,
const VkFormat format,
const VkFormat imageFormat,
const bool declareImageFormatInShader,
- const bool singleLayerBind)
- : BaseTestInstance (context, texture, format, declareImageFormatInShader, singleLayerBind)
+ const bool singleLayerBind,
+ const bool minalign,
+ const bool bufferLoadUniform)
+ : BaseTestInstance (context, texture, format, declareImageFormatInShader, singleLayerBind, minalign, bufferLoadUniform)
, m_imageSizeBytes (getImageSizeBytes(texture.size(), format))
, m_imageFormat (imageFormat)
, m_referenceImage (generateReferenceImage(texture.size(), imageFormat, format))
+ , m_bufferLoadUniform (bufferLoadUniform)
{
const DeviceInterface& vk = m_context.getDeviceInterface();
const VkDevice device = m_context.getDevice();
Allocator& allocator = m_context.getDefaultAllocator();
+ m_bufferLoadDescriptorType = m_bufferLoadUniform ? VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER : VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER;
+ m_bufferLoadUsageBit = m_bufferLoadUniform ? VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT : VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT;
+
// A helper buffer with enough space to hold the whole image.
m_imageBuffer = de::MovePtr<Buffer>(new Buffer(
vk, device, allocator,
- makeBufferCreateInfo(m_imageSizeBytes, VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT),
+ makeBufferCreateInfo(m_imageSizeBytes + m_srcViewOffset, m_bufferLoadUsageBit | VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT),
MemoryRequirement::HostVisible));
// Copy reference data to buffer for subsequent upload to image.
const Allocation& alloc = m_imageBuffer->getAllocation();
- deMemcpy(alloc.getHostPtr(), m_referenceImage.getAccess().getDataPtr(), static_cast<size_t>(m_imageSizeBytes));
+ deMemcpy((char *)alloc.getHostPtr() + m_srcViewOffset, m_referenceImage.getAccess().getDataPtr(), static_cast<size_t>(m_imageSizeBytes));
flushAlloc(vk, device, alloc);
}
const Allocation& alloc = getResultBuffer()->getAllocation();
invalidateAlloc(vk, device, alloc);
- const tcu::ConstPixelBufferAccess result(mapVkFormat(m_imageFormat), m_texture.size(), alloc.getHostPtr());
+ const tcu::ConstPixelBufferAccess result(mapVkFormat(m_imageFormat), m_texture.size(), (const char *)alloc.getHostPtr() + m_dstViewOffset);
if (comparePixelBuffers(m_context.getTestContext().getLog(), m_texture, m_imageFormat, reference, result))
return tcu::TestStatus::pass("Passed");
const VkFormat format,
const VkFormat imageFormat,
const bool declareImageFormatInShader,
- const bool singleLayerBind);
+ const bool singleLayerBind,
+ const bool minalign,
+ const bool bufferLoadUniform);
protected:
VkDescriptorSetLayout prepareDescriptors (void);
const VkFormat format,
const VkFormat imageFormat,
const bool declareImageFormatInShader,
- const bool singleLayerBind)
- : LoadStoreTestInstance (context, texture, format, imageFormat, declareImageFormatInShader, singleLayerBind)
+ const bool singleLayerBind,
+ const bool minalign,
+ const bool bufferLoadUniform)
+ : LoadStoreTestInstance (context, texture, format, imageFormat, declareImageFormatInShader, singleLayerBind, minalign, bufferLoadUniform)
, m_allDescriptorSets (texture.numLayers())
, m_allSrcImageViews (texture.numLayers())
, m_allDstImageViews (texture.numLayers())
const VkBufferMemoryBarrier barrierFlushHostWriteBeforeCopy = makeBufferMemoryBarrier(
VK_ACCESS_HOST_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT,
- m_imageBuffer->get(), 0ull, m_imageSizeBytes);
+ m_imageBuffer->get(), 0ull, m_imageSizeBytes + m_srcViewOffset);
vk.cmdPipelineBarrier(cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT,
(VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &barrierFlushHostWriteBeforeCopy, DE_LENGTH_OF_ARRAY(preCopyImageBarriers), preCopyImageBarriers);
const Texture& texture,
const VkFormat format,
const VkFormat imageFormat,
- const bool declareImageFormatInShader);
+ const bool declareImageFormatInShader,
+ const bool minalign,
+ const bool bufferLoadUniform);
protected:
VkDescriptorSetLayout prepareDescriptors (void);
const Texture& texture,
const VkFormat format,
const VkFormat imageFormat,
- const bool declareImageFormatInShader)
- : LoadStoreTestInstance(context, texture, format, imageFormat, declareImageFormatInShader, false)
+ const bool declareImageFormatInShader,
+ const bool minalign,
+ const bool bufferLoadUniform)
+ : LoadStoreTestInstance(context, texture, format, imageFormat, declareImageFormatInShader, false, minalign, bufferLoadUniform)
{
const DeviceInterface& vk = m_context.getDeviceInterface();
const VkDevice device = m_context.getDevice();
m_imageBufferDst = de::MovePtr<Buffer>(new Buffer(
vk, device, allocator,
- makeBufferCreateInfo(m_imageSizeBytes, VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT),
+ makeBufferCreateInfo(m_imageSizeBytes + m_dstViewOffset, VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT),
MemoryRequirement::HostVisible));
}
const VkDevice device = m_context.getDevice();
m_descriptorSetLayout = DescriptorSetLayoutBuilder()
- .addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, VK_SHADER_STAGE_COMPUTE_BIT)
+ .addSingleBinding(m_bufferLoadDescriptorType, VK_SHADER_STAGE_COMPUTE_BIT)
.addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, VK_SHADER_STAGE_COMPUTE_BIT)
.build(vk, device);
m_descriptorPool = DescriptorPoolBuilder()
- .addType(VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER)
+ .addType(m_bufferLoadDescriptorType)
.addType(VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER)
.build(vk, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+ VkFormat dstFormat = formatHasThreeComponents(m_format) ? getSingleComponentFormat(m_format) : m_format;
+
m_descriptorSet = makeDescriptorSet(vk, device, *m_descriptorPool, *m_descriptorSetLayout);
- m_bufferViewSrc = makeBufferView(vk, device, m_imageBuffer->get(), m_format, 0ull, m_imageSizeBytes);
- m_bufferViewDst = makeBufferView(vk, device, m_imageBufferDst->get(), m_format, 0ull, m_imageSizeBytes);
+ m_bufferViewSrc = makeBufferView(vk, device, m_imageBuffer->get(), m_format, m_srcViewOffset, m_imageSizeBytes);
+ m_bufferViewDst = makeBufferView(vk, device, m_imageBufferDst->get(), dstFormat, m_dstViewOffset, m_imageSizeBytes);
return *m_descriptorSetLayout; // not passing the ownership
}
const DeviceInterface& vk = m_context.getDeviceInterface();
DescriptorSetUpdateBuilder()
- .writeSingle(*m_descriptorSet, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, &m_bufferViewSrc.get())
+ .writeSingle(*m_descriptorSet, DescriptorSetUpdateBuilder::Location::binding(0u), m_bufferLoadDescriptorType, &m_bufferViewSrc.get())
.writeSingle(*m_descriptorSet, DescriptorSetUpdateBuilder::Location::binding(1u), VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, &m_bufferViewDst.get())
.update(vk, device);
vk.cmdBindDescriptorSets(cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipelineLayout, 0u, 1u, &m_descriptorSet.get(), 0u, DE_NULL);
void BufferLoadStoreTestInstance::commandAfterCompute (const VkCommandBuffer cmdBuffer)
{
- commandBufferWriteBarrierBeforeHostRead(m_context, cmdBuffer, m_imageBufferDst->get(), m_imageSizeBytes);
+ commandBufferWriteBarrierBeforeHostRead(m_context, cmdBuffer, m_imageBufferDst->get(), m_imageSizeBytes + m_dstViewOffset);
}
TestInstance* StoreTest::createInstance (Context& context) const
{
if (m_texture.type() == IMAGE_TYPE_BUFFER)
- return new BufferStoreTestInstance(context, m_texture, m_format, m_declareImageFormatInShader);
+ return new BufferStoreTestInstance(context, m_texture, m_format, m_declareImageFormatInShader, m_minalign);
else
- return new ImageStoreTestInstance(context, m_texture, m_format, m_declareImageFormatInShader, m_singleLayerBind);
+ return new ImageStoreTestInstance(context, m_texture, m_format, m_declareImageFormatInShader, m_singleLayerBind, m_minalign);
}
TestInstance* LoadStoreTest::createInstance (Context& context) const
{
if (m_texture.type() == IMAGE_TYPE_BUFFER)
- return new BufferLoadStoreTestInstance(context, m_texture, m_format, m_imageFormat, m_declareImageFormatInShader);
+ return new BufferLoadStoreTestInstance(context, m_texture, m_format, m_imageFormat, m_declareImageFormatInShader, m_minalign, m_bufferLoadUniform);
else
- return new ImageLoadStoreTestInstance(context, m_texture, m_format, m_imageFormat, m_declareImageFormatInShader, m_singleLayerBind);
+ return new ImageLoadStoreTestInstance(context, m_texture, m_format, m_imageFormat, m_declareImageFormatInShader, m_singleLayerBind, m_minalign, m_bufferLoadUniform);
}
static const Texture s_textures[] =
VK_FORMAT_R8_SNORM
};
+static const VkFormat s_formatsThreeComponent[] =
+{
+ VK_FORMAT_R8G8B8_UINT,
+ VK_FORMAT_R8G8B8_SINT,
+ VK_FORMAT_R8G8B8_UNORM,
+ VK_FORMAT_R8G8B8_SNORM,
+ VK_FORMAT_R16G16B16_UINT,
+ VK_FORMAT_R16G16B16_SINT,
+ VK_FORMAT_R16G16B16_UNORM,
+ VK_FORMAT_R16G16B16_SNORM,
+ VK_FORMAT_R16G16B16_SFLOAT,
+ VK_FORMAT_R32G32B32_UINT,
+ VK_FORMAT_R32G32B32_SINT,
+ VK_FORMAT_R32G32B32_SFLOAT,
+};
+
} // anonymous ns
tcu::TestCaseGroup* createImageStoreTests (tcu::TestContext& testCtx)
groupWithFormatByImageViewType->addChild(new StoreTest(testCtx, getFormatShortString(s_formats[formatNdx]) + "_single_layer", "",
texture, s_formats[formatNdx],
StoreTest::FLAG_SINGLE_LAYER_BIND | StoreTest::FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER));
+
+ if (texture.type() == IMAGE_TYPE_BUFFER)
+ {
+ groupWithFormatByImageViewType->addChild(new StoreTest(testCtx, getFormatShortString(s_formats[formatNdx]) + "_minalign", "", texture, s_formats[formatNdx], StoreTest::FLAG_MINALIGN | StoreTest::FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER));
+ groupWithoutFormatByImageViewType->addChild(new StoreTest(testCtx, getFormatShortString(s_formats[formatNdx]) + "_minalign", "", texture, s_formats[formatNdx], StoreTest::FLAG_MINALIGN));
+ }
}
testGroupWithFormat->addChild(groupWithFormatByImageViewType.release());
groupWithFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formats[formatNdx]) + "_single_layer", "",
texture, s_formats[formatNdx], s_formats[formatNdx],
LoadStoreTest::FLAG_SINGLE_LAYER_BIND | LoadStoreTest::FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER));
+ if (texture.type() == IMAGE_TYPE_BUFFER)
+ {
+ groupWithFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formats[formatNdx]) + "_minalign", "", texture, s_formats[formatNdx], s_formats[formatNdx], LoadStoreTest::FLAG_MINALIGN | LoadStoreTest::FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER));
+ groupWithFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formats[formatNdx]) + "_minalign_uniform", "", texture, s_formats[formatNdx], s_formats[formatNdx], LoadStoreTest::FLAG_MINALIGN | LoadStoreTest::FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER | LoadStoreTest::FLAG_UNIFORM_TEXEL_BUFFER));
+ groupWithoutFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formats[formatNdx]) + "_minalign", "", texture, s_formats[formatNdx], s_formats[formatNdx], LoadStoreTest::FLAG_MINALIGN));
+ groupWithoutFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formats[formatNdx]) + "_minalign_uniform", "", texture, s_formats[formatNdx], s_formats[formatNdx], LoadStoreTest::FLAG_MINALIGN | LoadStoreTest::FLAG_UNIFORM_TEXEL_BUFFER));
+ }
+ }
+
+ if (texture.type() == IMAGE_TYPE_BUFFER)
+ {
+ for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(s_formatsThreeComponent); ++formatNdx)
+ {
+ groupWithoutFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formatsThreeComponent[formatNdx]) + "_uniform", "", texture, s_formatsThreeComponent[formatNdx], s_formatsThreeComponent[formatNdx], LoadStoreTest::FLAG_UNIFORM_TEXEL_BUFFER));
+ groupWithoutFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formatsThreeComponent[formatNdx]) + "_minalign_uniform", "", texture, s_formatsThreeComponent[formatNdx], s_formatsThreeComponent[formatNdx], LoadStoreTest::FLAG_MINALIGN | LoadStoreTest::FLAG_UNIFORM_TEXEL_BUFFER));
+ }
}
testGroupWithFormat->addChild(groupWithFormatByImageViewType.release());
}
}
+std::string getFormatPrefix (const tcu::TextureFormat& format)
+{
+ return tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER ? "u" :
+ tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER ? "i" : "";
+}
+
std::string getShaderImageType (const tcu::TextureFormat& format, const ImageType imageType, const bool multisample)
{
- std::string formatPart = tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER ? "u" :
- tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER ? "i" : "";
+ std::string formatPart = getFormatPrefix(format);
std::string imageTypePart;
if (multisample)
vk::VkImageType mapImageType (const ImageType imageType);
vk::VkImageViewType mapImageViewType (const ImageType imageType);
std::string getImageTypeName (const ImageType imageType);
+std::string getFormatPrefix (const tcu::TextureFormat& format);
std::string getShaderImageType (const tcu::TextureFormat& format, const ImageType imageType, const bool multisample = false);
std::string getShaderImageFormatQualifier (const tcu::TextureFormat& format);
std::string getGlslSamplerType (const tcu::TextureFormat& format, vk::VkImageViewType type);
dEQP-VK.image.store.with_format.cube_array.r8_snorm
dEQP-VK.image.store.with_format.cube_array.r8_snorm_single_layer
dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r32_sfloat
+dEQP-VK.image.store.with_format.buffer.r32_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.store.with_format.buffer.r32g32b32a32_uint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_uint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_uint_minalign
dEQP-VK.image.store.with_format.buffer.r32_uint
+dEQP-VK.image.store.with_format.buffer.r32_uint_minalign
dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_sint_minalign
dEQP-VK.image.store.with_format.buffer.r32_sint
+dEQP-VK.image.store.with_format.buffer.r32_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_snorm_minalign
dEQP-VK.image.store.with_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.store.with_format.buffer.b10g11r11_ufloat_pack32_minalign
dEQP-VK.image.store.with_format.buffer.r32g32_sfloat
+dEQP-VK.image.store.with_format.buffer.r32g32_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_sfloat
+dEQP-VK.image.store.with_format.buffer.r16g16_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r16_sfloat
+dEQP-VK.image.store.with_format.buffer.r16_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.store.with_format.buffer.a2b10g10r10_uint_pack32_minalign
dEQP-VK.image.store.with_format.buffer.r32g32_uint
+dEQP-VK.image.store.with_format.buffer.r32g32_uint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_uint
+dEQP-VK.image.store.with_format.buffer.r16g16_uint_minalign
dEQP-VK.image.store.with_format.buffer.r16_uint
+dEQP-VK.image.store.with_format.buffer.r16_uint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_uint
+dEQP-VK.image.store.with_format.buffer.r8g8_uint_minalign
dEQP-VK.image.store.with_format.buffer.r8_uint
+dEQP-VK.image.store.with_format.buffer.r8_uint_minalign
dEQP-VK.image.store.with_format.buffer.r32g32_sint
+dEQP-VK.image.store.with_format.buffer.r32g32_sint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_sint
+dEQP-VK.image.store.with_format.buffer.r16g16_sint_minalign
dEQP-VK.image.store.with_format.buffer.r16_sint
+dEQP-VK.image.store.with_format.buffer.r16_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_sint
+dEQP-VK.image.store.with_format.buffer.r8g8_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8_sint
+dEQP-VK.image.store.with_format.buffer.r8_sint_minalign
dEQP-VK.image.store.with_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.store.with_format.buffer.a2b10g10r10_unorm_pack32_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_unorm
+dEQP-VK.image.store.with_format.buffer.r16g16_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r16_unorm
+dEQP-VK.image.store.with_format.buffer.r16_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_unorm
+dEQP-VK.image.store.with_format.buffer.r8g8_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r8_unorm
+dEQP-VK.image.store.with_format.buffer.r8_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_snorm
+dEQP-VK.image.store.with_format.buffer.r16g16_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r16_snorm
+dEQP-VK.image.store.with_format.buffer.r16_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_snorm
+dEQP-VK.image.store.with_format.buffer.r8g8_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r8_snorm
+dEQP-VK.image.store.with_format.buffer.r8_snorm_minalign
dEQP-VK.image.store.without_format.1d.r32g32b32a32_sfloat
dEQP-VK.image.store.without_format.1d.r16g16b16a16_sfloat
dEQP-VK.image.store.without_format.1d.r32_sfloat
dEQP-VK.image.store.without_format.cube_array.r8g8_snorm
dEQP-VK.image.store.without_format.cube_array.r8_snorm
dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r32_sfloat
+dEQP-VK.image.store.without_format.buffer.r32_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.store.without_format.buffer.r32g32b32a32_uint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_uint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_uint_minalign
dEQP-VK.image.store.without_format.buffer.r32_uint
+dEQP-VK.image.store.without_format.buffer.r32_uint_minalign
dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_sint_minalign
dEQP-VK.image.store.without_format.buffer.r32_sint
+dEQP-VK.image.store.without_format.buffer.r32_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_snorm_minalign
dEQP-VK.image.store.without_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.store.without_format.buffer.b10g11r11_ufloat_pack32_minalign
dEQP-VK.image.store.without_format.buffer.r32g32_sfloat
+dEQP-VK.image.store.without_format.buffer.r32g32_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_sfloat
+dEQP-VK.image.store.without_format.buffer.r16g16_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r16_sfloat
+dEQP-VK.image.store.without_format.buffer.r16_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.store.without_format.buffer.a2b10g10r10_uint_pack32_minalign
dEQP-VK.image.store.without_format.buffer.r32g32_uint
+dEQP-VK.image.store.without_format.buffer.r32g32_uint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_uint
+dEQP-VK.image.store.without_format.buffer.r16g16_uint_minalign
dEQP-VK.image.store.without_format.buffer.r16_uint
+dEQP-VK.image.store.without_format.buffer.r16_uint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_uint
+dEQP-VK.image.store.without_format.buffer.r8g8_uint_minalign
dEQP-VK.image.store.without_format.buffer.r8_uint
+dEQP-VK.image.store.without_format.buffer.r8_uint_minalign
dEQP-VK.image.store.without_format.buffer.r32g32_sint
+dEQP-VK.image.store.without_format.buffer.r32g32_sint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_sint
+dEQP-VK.image.store.without_format.buffer.r16g16_sint_minalign
dEQP-VK.image.store.without_format.buffer.r16_sint
+dEQP-VK.image.store.without_format.buffer.r16_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_sint
+dEQP-VK.image.store.without_format.buffer.r8g8_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8_sint
+dEQP-VK.image.store.without_format.buffer.r8_sint_minalign
dEQP-VK.image.store.without_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.store.without_format.buffer.a2b10g10r10_unorm_pack32_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_unorm
+dEQP-VK.image.store.without_format.buffer.r16g16_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r16_unorm
+dEQP-VK.image.store.without_format.buffer.r16_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_unorm
+dEQP-VK.image.store.without_format.buffer.r8g8_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r8_unorm
+dEQP-VK.image.store.without_format.buffer.r8_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_snorm
+dEQP-VK.image.store.without_format.buffer.r16g16_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r16_snorm
+dEQP-VK.image.store.without_format.buffer.r16_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_snorm
+dEQP-VK.image.store.without_format.buffer.r8g8_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r8_snorm
+dEQP-VK.image.store.without_format.buffer.r8_snorm_minalign
dEQP-VK.image.load_store.with_format.1d.r32g32b32a32_sfloat
dEQP-VK.image.load_store.with_format.1d.r16g16b16a16_sfloat
dEQP-VK.image.load_store.with_format.1d.r32_sfloat
dEQP-VK.image.load_store.with_format.cube_array.r8_snorm
dEQP-VK.image.load_store.with_format.cube_array.r8_snorm_single_layer
dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r32_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32_uint
+dEQP-VK.image.load_store.with_format.buffer.r32_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32_sint
+dEQP-VK.image.load_store.with_format.buffer.r32_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store.with_format.buffer.b10g11r11_ufloat_pack32_minalign
+dEQP-VK.image.load_store.with_format.buffer.b10g11r11_ufloat_pack32_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r16_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_uint_pack32_minalign
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_uint_pack32_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32_uint
+dEQP-VK.image.load_store.with_format.buffer.r32g32_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_uint
+dEQP-VK.image.load_store.with_format.buffer.r16g16_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_uint
+dEQP-VK.image.load_store.with_format.buffer.r16_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_uint
+dEQP-VK.image.load_store.with_format.buffer.r8g8_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_uint
+dEQP-VK.image.load_store.with_format.buffer.r8_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32_sint
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_sint
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_sint
+dEQP-VK.image.load_store.with_format.buffer.r16_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_sint
+dEQP-VK.image.load_store.with_format.buffer.r8g8_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_sint
+dEQP-VK.image.load_store.with_format.buffer.r8_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_unorm_pack32_minalign
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_unorm_pack32_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_unorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_unorm
+dEQP-VK.image.load_store.with_format.buffer.r16_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_unorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_unorm
+dEQP-VK.image.load_store.with_format.buffer.r8_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_snorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_snorm
+dEQP-VK.image.load_store.with_format.buffer.r16_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_snorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_snorm
+dEQP-VK.image.load_store.with_format.buffer.r8_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.1d.r32g32b32a32_sfloat
dEQP-VK.image.load_store.without_format.1d.r16g16b16a16_sfloat
dEQP-VK.image.load_store.without_format.1d.r32_sfloat
dEQP-VK.image.load_store.without_format.cube_array.r8g8_snorm
dEQP-VK.image.load_store.without_format.cube_array.r8_snorm
dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r32_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32_uint
+dEQP-VK.image.load_store.without_format.buffer.r32_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32_sint
+dEQP-VK.image.load_store.without_format.buffer.r32_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store.without_format.buffer.b10g11r11_ufloat_pack32_minalign
+dEQP-VK.image.load_store.without_format.buffer.b10g11r11_ufloat_pack32_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r16_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_uint_pack32_minalign
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_uint_pack32_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32_uint
+dEQP-VK.image.load_store.without_format.buffer.r32g32_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_uint
+dEQP-VK.image.load_store.without_format.buffer.r16g16_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_uint
+dEQP-VK.image.load_store.without_format.buffer.r16_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_uint
+dEQP-VK.image.load_store.without_format.buffer.r8g8_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_uint
+dEQP-VK.image.load_store.without_format.buffer.r8_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32_sint
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_sint
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_sint
+dEQP-VK.image.load_store.without_format.buffer.r16_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_sint
+dEQP-VK.image.load_store.without_format.buffer.r8g8_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_sint
+dEQP-VK.image.load_store.without_format.buffer.r8_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_unorm_pack32_minalign
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_unorm_pack32_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_unorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_unorm
+dEQP-VK.image.load_store.without_format.buffer.r16_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_unorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_unorm
+dEQP-VK.image.load_store.without_format.buffer.r8_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_snorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_snorm
+dEQP-VK.image.load_store.without_format.buffer.r16_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_snorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_snorm
+dEQP-VK.image.load_store.without_format.buffer.r8_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_snorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_uint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_uint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_sint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_sint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_unorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_unorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_snorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_snorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_uint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_uint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_unorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_unorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_snorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_snorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sfloat_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sfloat_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_uint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_uint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sfloat_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sfloat_minalign_uniform
dEQP-VK.image.load_store_multisample.2d.r32g32b32a32_sfloat.samples_2
dEQP-VK.image.load_store_multisample.2d.r32g32b32a32_sfloat.samples_4
dEQP-VK.image.load_store_multisample.2d.r32g32b32a32_sfloat.samples_8
dEQP-VK.image.store.with_format.cube_array.r8_snorm
dEQP-VK.image.store.with_format.cube_array.r8_snorm_single_layer
dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r32_sfloat
+dEQP-VK.image.store.with_format.buffer.r32_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.store.with_format.buffer.r32g32b32a32_uint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_uint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_uint_minalign
dEQP-VK.image.store.with_format.buffer.r32_uint
+dEQP-VK.image.store.with_format.buffer.r32_uint_minalign
dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.store.with_format.buffer.r32g32b32a32_sint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_sint_minalign
dEQP-VK.image.store.with_format.buffer.r32_sint
+dEQP-VK.image.store.with_format.buffer.r32_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.store.with_format.buffer.r8g8b8a8_snorm_minalign
dEQP-VK.image.store.with_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.store.with_format.buffer.b10g11r11_ufloat_pack32_minalign
dEQP-VK.image.store.with_format.buffer.r32g32_sfloat
+dEQP-VK.image.store.with_format.buffer.r32g32_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_sfloat
+dEQP-VK.image.store.with_format.buffer.r16g16_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.r16_sfloat
+dEQP-VK.image.store.with_format.buffer.r16_sfloat_minalign
dEQP-VK.image.store.with_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.store.with_format.buffer.a2b10g10r10_uint_pack32_minalign
dEQP-VK.image.store.with_format.buffer.r32g32_uint
+dEQP-VK.image.store.with_format.buffer.r32g32_uint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_uint
+dEQP-VK.image.store.with_format.buffer.r16g16_uint_minalign
dEQP-VK.image.store.with_format.buffer.r16_uint
+dEQP-VK.image.store.with_format.buffer.r16_uint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_uint
+dEQP-VK.image.store.with_format.buffer.r8g8_uint_minalign
dEQP-VK.image.store.with_format.buffer.r8_uint
+dEQP-VK.image.store.with_format.buffer.r8_uint_minalign
dEQP-VK.image.store.with_format.buffer.r32g32_sint
+dEQP-VK.image.store.with_format.buffer.r32g32_sint_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_sint
+dEQP-VK.image.store.with_format.buffer.r16g16_sint_minalign
dEQP-VK.image.store.with_format.buffer.r16_sint
+dEQP-VK.image.store.with_format.buffer.r16_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_sint
+dEQP-VK.image.store.with_format.buffer.r8g8_sint_minalign
dEQP-VK.image.store.with_format.buffer.r8_sint
+dEQP-VK.image.store.with_format.buffer.r8_sint_minalign
dEQP-VK.image.store.with_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.store.with_format.buffer.a2b10g10r10_unorm_pack32_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.store.with_format.buffer.r16g16b16a16_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_unorm
+dEQP-VK.image.store.with_format.buffer.r16g16_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r16_unorm
+dEQP-VK.image.store.with_format.buffer.r16_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_unorm
+dEQP-VK.image.store.with_format.buffer.r8g8_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r8_unorm
+dEQP-VK.image.store.with_format.buffer.r8_unorm_minalign
dEQP-VK.image.store.with_format.buffer.r16g16_snorm
+dEQP-VK.image.store.with_format.buffer.r16g16_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r16_snorm
+dEQP-VK.image.store.with_format.buffer.r16_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r8g8_snorm
+dEQP-VK.image.store.with_format.buffer.r8g8_snorm_minalign
dEQP-VK.image.store.with_format.buffer.r8_snorm
+dEQP-VK.image.store.with_format.buffer.r8_snorm_minalign
dEQP-VK.image.store.without_format.1d.r32g32b32a32_sfloat
dEQP-VK.image.store.without_format.1d.r16g16b16a16_sfloat
dEQP-VK.image.store.without_format.1d.r32_sfloat
dEQP-VK.image.store.without_format.cube_array.r8g8_snorm
dEQP-VK.image.store.without_format.cube_array.r8_snorm
dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r32_sfloat
+dEQP-VK.image.store.without_format.buffer.r32_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.store.without_format.buffer.r32g32b32a32_uint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_uint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_uint_minalign
dEQP-VK.image.store.without_format.buffer.r32_uint
+dEQP-VK.image.store.without_format.buffer.r32_uint_minalign
dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.store.without_format.buffer.r32g32b32a32_sint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_sint_minalign
dEQP-VK.image.store.without_format.buffer.r32_sint
+dEQP-VK.image.store.without_format.buffer.r32_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.store.without_format.buffer.r8g8b8a8_snorm_minalign
dEQP-VK.image.store.without_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.store.without_format.buffer.b10g11r11_ufloat_pack32_minalign
dEQP-VK.image.store.without_format.buffer.r32g32_sfloat
+dEQP-VK.image.store.without_format.buffer.r32g32_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_sfloat
+dEQP-VK.image.store.without_format.buffer.r16g16_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.r16_sfloat
+dEQP-VK.image.store.without_format.buffer.r16_sfloat_minalign
dEQP-VK.image.store.without_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.store.without_format.buffer.a2b10g10r10_uint_pack32_minalign
dEQP-VK.image.store.without_format.buffer.r32g32_uint
+dEQP-VK.image.store.without_format.buffer.r32g32_uint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_uint
+dEQP-VK.image.store.without_format.buffer.r16g16_uint_minalign
dEQP-VK.image.store.without_format.buffer.r16_uint
+dEQP-VK.image.store.without_format.buffer.r16_uint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_uint
+dEQP-VK.image.store.without_format.buffer.r8g8_uint_minalign
dEQP-VK.image.store.without_format.buffer.r8_uint
+dEQP-VK.image.store.without_format.buffer.r8_uint_minalign
dEQP-VK.image.store.without_format.buffer.r32g32_sint
+dEQP-VK.image.store.without_format.buffer.r32g32_sint_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_sint
+dEQP-VK.image.store.without_format.buffer.r16g16_sint_minalign
dEQP-VK.image.store.without_format.buffer.r16_sint
+dEQP-VK.image.store.without_format.buffer.r16_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_sint
+dEQP-VK.image.store.without_format.buffer.r8g8_sint_minalign
dEQP-VK.image.store.without_format.buffer.r8_sint
+dEQP-VK.image.store.without_format.buffer.r8_sint_minalign
dEQP-VK.image.store.without_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.store.without_format.buffer.a2b10g10r10_unorm_pack32_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.store.without_format.buffer.r16g16b16a16_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_unorm
+dEQP-VK.image.store.without_format.buffer.r16g16_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r16_unorm
+dEQP-VK.image.store.without_format.buffer.r16_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_unorm
+dEQP-VK.image.store.without_format.buffer.r8g8_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r8_unorm
+dEQP-VK.image.store.without_format.buffer.r8_unorm_minalign
dEQP-VK.image.store.without_format.buffer.r16g16_snorm
+dEQP-VK.image.store.without_format.buffer.r16g16_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r16_snorm
+dEQP-VK.image.store.without_format.buffer.r16_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r8g8_snorm
+dEQP-VK.image.store.without_format.buffer.r8g8_snorm_minalign
dEQP-VK.image.store.without_format.buffer.r8_snorm
+dEQP-VK.image.store.without_format.buffer.r8_snorm_minalign
dEQP-VK.image.load_store.with_format.1d.r32g32b32a32_sfloat
dEQP-VK.image.load_store.with_format.1d.r16g16b16a16_sfloat
dEQP-VK.image.load_store.with_format.1d.r32_sfloat
dEQP-VK.image.load_store.with_format.cube_array.r8_snorm
dEQP-VK.image.load_store.with_format.cube_array.r8_snorm_single_layer
dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r32_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32_uint
+dEQP-VK.image.load_store.with_format.buffer.r32_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32b32a32_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32_sint
+dEQP-VK.image.load_store.with_format.buffer.r32_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8b8a8_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store.with_format.buffer.b10g11r11_ufloat_pack32_minalign
+dEQP-VK.image.load_store.with_format.buffer.b10g11r11_ufloat_pack32_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_sfloat
+dEQP-VK.image.load_store.with_format.buffer.r16_sfloat_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_sfloat_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_uint_pack32_minalign
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_uint_pack32_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32_uint
+dEQP-VK.image.load_store.with_format.buffer.r32g32_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_uint
+dEQP-VK.image.load_store.with_format.buffer.r16g16_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_uint
+dEQP-VK.image.load_store.with_format.buffer.r16_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_uint
+dEQP-VK.image.load_store.with_format.buffer.r8g8_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_uint
+dEQP-VK.image.load_store.with_format.buffer.r8_uint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_uint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r32g32_sint
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r32g32_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_sint
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_sint
+dEQP-VK.image.load_store.with_format.buffer.r16_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_sint
+dEQP-VK.image.load_store.with_format.buffer.r8g8_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_sint
+dEQP-VK.image.load_store.with_format.buffer.r8_sint_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_sint_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_unorm_pack32_minalign
+dEQP-VK.image.load_store.with_format.buffer.a2b10g10r10_unorm_pack32_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16b16a16_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_unorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_unorm
+dEQP-VK.image.load_store.with_format.buffer.r16_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_unorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_unorm
+dEQP-VK.image.load_store.with_format.buffer.r8_unorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_unorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16g16_snorm
+dEQP-VK.image.load_store.with_format.buffer.r16g16_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16g16_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r16_snorm
+dEQP-VK.image.load_store.with_format.buffer.r16_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r16_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8g8_snorm
+dEQP-VK.image.load_store.with_format.buffer.r8g8_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8g8_snorm_minalign_uniform
dEQP-VK.image.load_store.with_format.buffer.r8_snorm
+dEQP-VK.image.load_store.with_format.buffer.r8_snorm_minalign
+dEQP-VK.image.load_store.with_format.buffer.r8_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.1d.r32g32b32a32_sfloat
dEQP-VK.image.load_store.without_format.1d.r16g16b16a16_sfloat
dEQP-VK.image.load_store.without_format.1d.r32_sfloat
dEQP-VK.image.load_store.without_format.cube_array.r8g8_snorm
dEQP-VK.image.load_store.without_format.cube_array.r8_snorm
dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r32_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_uint
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_uint
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_uint
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32_uint
+dEQP-VK.image.load_store.without_format.buffer.r32_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sint
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32a32_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sint
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_sint
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32_sint
+dEQP-VK.image.load_store.without_format.buffer.r32_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_unorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_snorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8a8_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store.without_format.buffer.b10g11r11_ufloat_pack32_minalign
+dEQP-VK.image.load_store.without_format.buffer.b10g11r11_ufloat_pack32_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_sfloat
+dEQP-VK.image.load_store.without_format.buffer.r16_sfloat_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_sfloat_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_uint_pack32_minalign
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_uint_pack32_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32_uint
+dEQP-VK.image.load_store.without_format.buffer.r32g32_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_uint
+dEQP-VK.image.load_store.without_format.buffer.r16g16_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_uint
+dEQP-VK.image.load_store.without_format.buffer.r16_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_uint
+dEQP-VK.image.load_store.without_format.buffer.r8g8_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_uint
+dEQP-VK.image.load_store.without_format.buffer.r8_uint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_uint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r32g32_sint
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r32g32_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_sint
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_sint
+dEQP-VK.image.load_store.without_format.buffer.r16_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_sint
+dEQP-VK.image.load_store.without_format.buffer.r8g8_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_sint
+dEQP-VK.image.load_store.without_format.buffer.r8_sint_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_sint_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_unorm_pack32_minalign
+dEQP-VK.image.load_store.without_format.buffer.a2b10g10r10_unorm_pack32_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_unorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_snorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16a16_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_unorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_unorm
+dEQP-VK.image.load_store.without_format.buffer.r16_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_unorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_unorm
+dEQP-VK.image.load_store.without_format.buffer.r8_unorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_unorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16g16_snorm
+dEQP-VK.image.load_store.without_format.buffer.r16g16_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16g16_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r16_snorm
+dEQP-VK.image.load_store.without_format.buffer.r16_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r16_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8g8_snorm
+dEQP-VK.image.load_store.without_format.buffer.r8g8_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8g8_snorm_minalign_uniform
dEQP-VK.image.load_store.without_format.buffer.r8_snorm
+dEQP-VK.image.load_store.without_format.buffer.r8_snorm_minalign
+dEQP-VK.image.load_store.without_format.buffer.r8_snorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_uint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_uint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_sint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_sint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_unorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_unorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_snorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r8g8b8_snorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_uint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_uint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_unorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_unorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_snorm_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_snorm_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sfloat_uniform
+dEQP-VK.image.load_store.without_format.buffer.r16g16b16_sfloat_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_uint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_uint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sint_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sint_minalign_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sfloat_uniform
+dEQP-VK.image.load_store.without_format.buffer.r32g32b32_sfloat_minalign_uniform
dEQP-VK.image.load_store_multisample.2d.r32g32b32a32_sfloat.samples_2
dEQP-VK.image.load_store_multisample.2d.r32g32b32a32_sfloat.samples_4
dEQP-VK.image.load_store_multisample.2d.r32g32b32a32_sfloat.samples_8