Merge "Require GL_EXT_sRGB_write_control for GL_FRAMEBUFFER_SRGB enable/disable" into oreo-mr1-cts-dev
am: c6b5415220
Change-Id: I36d5a70037b66e27342c76a050fadc7607906531
diff --git a/Android.mk b/Android.mk
index 7d60924..3e82f49 100644
--- a/Android.mk
+++ b/Android.mk
@@ -712,6 +712,7 @@
modules/gles3/functional/es3fInternalFormatQueryTests.cpp \
modules/gles3/functional/es3fLifetimeTests.cpp \
modules/gles3/functional/es3fMultisampleTests.cpp \
+ modules/gles3/functional/es3fMultiviewTests.cpp \
modules/gles3/functional/es3fNegativeBufferApiTests.cpp \
modules/gles3/functional/es3fNegativeFragmentApiTests.cpp \
modules/gles3/functional/es3fNegativeShaderApiTests.cpp \
@@ -879,6 +880,7 @@
modules/gles31/functional/es31fShaderSharedVarTests.cpp \
modules/gles31/functional/es31fShaderStateQueryTests.cpp \
modules/gles31/functional/es31fShaderTextureSizeTests.cpp \
+ modules/gles31/functional/es31fShaderUniformIntegerFunctionTests.cpp \
modules/gles31/functional/es31fStencilTexturingTests.cpp \
modules/gles31/functional/es31fSynchronizationTests.cpp \
modules/gles31/functional/es31fTessellationGeometryInteractionTests.cpp \
@@ -1027,6 +1029,8 @@
-DDEQP_GLES3_RUNTIME_LOAD=1 \
-DDEQP_GLES2_RUNTIME_LOAD=1 \
-DQP_SUPPORT_PNG=1 \
+ -Wall \
+ -Werror \
-Wconversion \
-fwrapv \
-Wno-sign-conversion
@@ -1049,9 +1053,14 @@
LOCAL_SDK_VERSION := 22
LOCAL_CPPFLAGS += -Wno-non-virtual-dtor -Wno-delete-non-virtual-dtor
-LOCAL_NDK_STL_VARIANT := gnustl_static
+LOCAL_NDK_STL_VARIANT := c++_static
LOCAL_RTTI_FLAG := -frtti -fexceptions
LOCAL_MULTILIB := both
+LOCAL_TIDY_CHECKS := \
+ -google-build-explicit-make-pair, \
+ -google-global-names-in-headers, \
+ -google-runtime-member-string-references, \
+ -google-runtime-operator, \
include $(BUILD_SHARED_LIBRARY)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1ecdd52..445cf7c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,8 +57,14 @@
include_directories(${ZLIB_INCLUDE_PATH})
# libpng
-find_path(PNG_INCLUDE_PATH png.h)
-find_library(PNG_LIBRARY png)
+#
+# The FindPNG module defines PNG_INCLUDE_DIRS and PNG_LIBRARIES. But dEQP's
+# CMake files expect the non-standard PNG_INCLUDE_PATH and PNG_LIBRARY. Set the
+# non-standard variables here to retain compatibility with dEQP's existing
+# CMake files.
+include(FindPNG)
+set(PNG_INCLUDE_PATH ${PNG_INCLUDE_DIRS})
+set(PNG_LIBRARY ${PNG_LIBRARIES})
if (NOT PNG_INCLUDE_PATH OR NOT PNG_LIBRARY)
message(STATUS "System version of libpng not found, using external/libpng")
diff --git a/android/cts/AndroidTest.xml b/android/cts/AndroidTest.xml
index a880b85..1851772 100644
--- a/android/cts/AndroidTest.xml
+++ b/android/cts/AndroidTest.xml
@@ -18,6 +18,7 @@
<!--
This file has been automatically generated. Edit with caution.
-->
+ <option name="test-suite-tag" value="cts"/>
<option key="component" name="config-descriptor:metadata" value="deqp"/>
<test class="com.drawelements.deqp.runner.DeqpTestRunner">
<option name="deqp-package" value="dEQP-EGL"/>
diff --git a/android/cts/master/egl-master.txt b/android/cts/master/egl-master.txt
index 3d71c30..ab4087f 100644
--- a/android/cts/master/egl-master.txt
+++ b/android/cts/master/egl-master.txt
@@ -3670,3 +3670,5 @@
dEQP-EGL.functional.wide_color.pbuffer_8888_colorspace_default
dEQP-EGL.functional.wide_color.pbuffer_8888_colorspace_srgb
dEQP-EGL.functional.wide_color.pbuffer_8888_colorspace_p3
+dEQP-EGL.functional.hdr_metadata.smpte2086
+dEQP-EGL.functional.hdr_metadata.cta861_3
diff --git a/android/cts/master/gles2-master.txt b/android/cts/master/gles2-master.txt
index 2b6f7c7..7d783c9 100644
--- a/android/cts/master/gles2-master.txt
+++ b/android/cts/master/gles2-master.txt
@@ -1115,6 +1115,11 @@
dEQP-GLES2.functional.shaders.declarations.invalid_declarations.uniform_in_fragment_main
dEQP-GLES2.functional.shaders.declarations.invalid_declarations.varying_in_vertex_main
dEQP-GLES2.functional.shaders.declarations.invalid_declarations.varying_in_fragment_main
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.float_partially_specified_fragment
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.float_fragment
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.vec2_fragment
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.vec3_fragment
+dEQP-GLES2.functional.shaders.declarations.unspecified_precision.vec4_fragment
dEQP-GLES2.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_vertex
dEQP-GLES2.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_fragment
dEQP-GLES2.functional.shaders.swizzles.vector_swizzles.mediump_vec2_xx_vertex
@@ -5777,6 +5782,9 @@
dEQP-GLES2.functional.shaders.operator.sequence.side_effects.lowp_vec4_ivec4_bvec4_fragment
dEQP-GLES2.functional.shaders.operator.sequence.side_effects.mediump_vec4_ivec4_bvec4_fragment
dEQP-GLES2.functional.shaders.operator.sequence.side_effects.highp_vec4_ivec4_bvec4_fragment
+dEQP-GLES2.functional.shaders.operator.sequence.side_effects.affect_ternary
+dEQP-GLES2.functional.shaders.operator.sequence.side_effects.affect_and
+dEQP-GLES2.functional.shaders.operator.sequence.side_effects.affect_or
dEQP-GLES2.functional.shaders.matrix.add.const_lowp_mat2_float_vertex
dEQP-GLES2.functional.shaders.matrix.add.const_lowp_mat2_float_fragment
dEQP-GLES2.functional.shaders.matrix.add.const_lowp_mat2_mat2_vertex
@@ -6610,6 +6618,10 @@
dEQP-GLES2.functional.shaders.struct.uniform.sampler_fragment
dEQP-GLES2.functional.shaders.struct.uniform.sampler_nested_vertex
dEQP-GLES2.functional.shaders.struct.uniform.sampler_nested_fragment
+dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_function_arg_vertex
+dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_function_arg_fragment
+dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_array_function_arg_vertex
+dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_array_function_arg_fragment
dEQP-GLES2.functional.shaders.struct.uniform.equal_vertex
dEQP-GLES2.functional.shaders.struct.uniform.equal_fragment
dEQP-GLES2.functional.shaders.struct.uniform.not_equal_vertex
@@ -11696,6 +11708,7 @@
dEQP-GLES2.functional.rasterization.primitives.line_strip
dEQP-GLES2.functional.rasterization.primitives.line_loop
dEQP-GLES2.functional.rasterization.primitives.points
+dEQP-GLES2.functional.rasterization.limits.points
dEQP-GLES2.functional.rasterization.fill_rules.basic_quad
dEQP-GLES2.functional.rasterization.fill_rules.basic_quad_reverse
dEQP-GLES2.functional.rasterization.fill_rules.clipped_full
diff --git a/android/cts/master/gles3-master.txt b/android/cts/master/gles3-master.txt
index 8156022..c4c4dec 100644
--- a/android/cts/master/gles3-master.txt
+++ b/android/cts/master/gles3-master.txt
@@ -4449,6 +4449,14 @@
dEQP-GLES3.functional.shaders.arrays.invalid.constructor_c_style3_fragment
dEQP-GLES3.functional.shaders.arrays.invalid.constructor_c_style4_vertex
dEQP-GLES3.functional.shaders.arrays.invalid.constructor_c_style4_fragment
+dEQP-GLES3.functional.shaders.arrays.complex_expression.and_short_circuits_vertex
+dEQP-GLES3.functional.shaders.arrays.complex_expression.and_short_circuits_fragment
+dEQP-GLES3.functional.shaders.arrays.complex_expression.or_short_circuits_vertex
+dEQP-GLES3.functional.shaders.arrays.complex_expression.or_short_circuits_fragment
+dEQP-GLES3.functional.shaders.arrays.complex_expression.ternary_only_evaluates_one_operand_vertex
+dEQP-GLES3.functional.shaders.arrays.complex_expression.ternary_only_evaluates_one_operand_fragment
+dEQP-GLES3.functional.shaders.arrays.complex_expression.sequence_side_effects_affecting_compared_array_content_vertex
+dEQP-GLES3.functional.shaders.arrays.complex_expression.sequence_side_effects_affecting_compared_array_content_fragment
dEQP-GLES3.functional.shaders.large_constant_arrays.indexing.float_16_vertex
dEQP-GLES3.functional.shaders.large_constant_arrays.indexing.float_16_fragment
dEQP-GLES3.functional.shaders.large_constant_arrays.indexing.float_32_vertex
@@ -5772,6 +5780,34 @@
dEQP-GLES3.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_static_loop_read_fragment
dEQP-GLES3.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_dynamic_loop_read_vertex
dEQP-GLES3.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_dynamic_loop_read_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.matrix_twice_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.matrix_twice_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.with_value_from_indexing_expression_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.with_value_from_indexing_expression_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.lvalue_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.lvalue_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.lvalue_with_value_from_indexing_expression_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.lvalue_with_value_from_indexing_expression_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.builtin_fncall_out_parameter_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.builtin_fncall_out_parameter_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.user_defined_fncall_out_parameter_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.user_defined_fncall_out_parameter_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.user_defined_fncall_inout_parameter_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.user_defined_fncall_inout_parameter_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.with_side_effects_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.with_side_effects_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.inout_with_side_effects_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.inout_with_side_effects_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.user_defined_fncall_inout_parameter_with_index_with_side_effects_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.user_defined_fncall_inout_parameter_with_index_with_side_effects_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.lvalue_with_uint_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.lvalue_with_uint_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.uniform_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.uniform_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.sequence_vector_lvalue_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.sequence_vector_lvalue_fragment
+dEQP-GLES3.functional.shaders.indexing.moredynamic.matrix_twice_in_lvalue_vertex
+dEQP-GLES3.functional.shaders.indexing.moredynamic.matrix_twice_in_lvalue_fragment
dEQP-GLES3.functional.shaders.loops.for_constant_iterations.basic_lowp_int_vertex
dEQP-GLES3.functional.shaders.loops.for_constant_iterations.basic_lowp_int_fragment
dEQP-GLES3.functional.shaders.loops.for_constant_iterations.basic_lowp_float_vertex
@@ -6343,6 +6379,14 @@
dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.nested_tricky_dataflow_2_vertex
dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.nested_tricky_dataflow_2_fragment
dEQP-GLES3.functional.shaders.loops.custom.continue_in_fragment_for_loop
+dEQP-GLES3.functional.shaders.loops.short_circuit.while_vertex
+dEQP-GLES3.functional.shaders.loops.short_circuit.while_fragment
+dEQP-GLES3.functional.shaders.loops.short_circuit.for_vertex
+dEQP-GLES3.functional.shaders.loops.short_circuit.for_fragment
+dEQP-GLES3.functional.shaders.loops.short_circuit.do_while_vertex
+dEQP-GLES3.functional.shaders.loops.short_circuit.do_while_fragment
+dEQP-GLES3.functional.shaders.loops.short_circuit.while_sequence_vertex
+dEQP-GLES3.functional.shaders.loops.short_circuit.while_sequence_fragment
dEQP-GLES3.functional.shaders.operator.unary_operator.plus.lowp_float_vertex
dEQP-GLES3.functional.shaders.operator.unary_operator.plus.lowp_float_fragment
dEQP-GLES3.functional.shaders.operator.unary_operator.plus.mediump_float_vertex
@@ -15473,6 +15517,8 @@
dEQP-GLES3.functional.shaders.struct.local.dynamic_loop_struct_array_fragment
dEQP-GLES3.functional.shaders.struct.local.dynamic_loop_nested_struct_array_vertex
dEQP-GLES3.functional.shaders.struct.local.dynamic_loop_nested_struct_array_fragment
+dEQP-GLES3.functional.shaders.struct.local.array_member_equality_vertex
+dEQP-GLES3.functional.shaders.struct.local.array_member_equality_fragment
dEQP-GLES3.functional.shaders.struct.uniform.basic_vertex
dEQP-GLES3.functional.shaders.struct.uniform.basic_fragment
dEQP-GLES3.functional.shaders.struct.uniform.nested_vertex
@@ -30428,6 +30474,13 @@
dEQP-GLES3.functional.fbo.msaa.8_samples.depth32f_stencil8
dEQP-GLES3.functional.fbo.msaa.8_samples.depth24_stencil8
dEQP-GLES3.functional.fbo.msaa.8_samples.stencil_index8
+dEQP-GLES3.functional.fbo.msaa.renderbuffer_resize.nonms_to_nonms
+dEQP-GLES3.functional.fbo.msaa.renderbuffer_resize.nonms_to_ms
+dEQP-GLES3.functional.fbo.msaa.renderbuffer_resize.ms_to_nonms
+dEQP-GLES3.functional.fbo.msaa.renderbuffer_resize.ms_to_ms
+dEQP-GLES3.functional.fbo.multiview.samples_1
+dEQP-GLES3.functional.fbo.multiview.samples_2
+dEQP-GLES3.functional.fbo.multiview.samples_4
dEQP-GLES3.functional.fbo.invalidate.default.render_none
dEQP-GLES3.functional.fbo.invalidate.default.render_color
dEQP-GLES3.functional.fbo.invalidate.default.render_depth
diff --git a/android/cts/master/gles31-master.txt b/android/cts/master/gles31-master.txt
index 34db622..bee36ef 100644
--- a/android/cts/master/gles31-master.txt
+++ b/android/cts/master/gles31-master.txt
@@ -2094,6 +2094,78 @@
dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec4_highp_tess_control
dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec4_highp_tess_eval
dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec4_highp_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.lowp_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.lowp_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.lowp_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.lowp_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.lowp_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.lowp_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.mediump_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.mediump_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.mediump_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.mediump_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.mediump_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.mediump_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.highp_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.highp_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.highp_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.highp_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.highp_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.highp_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.lowp_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.lowp_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.lowp_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.lowp_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.lowp_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.lowp_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.mediump_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.mediump_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.mediump_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.mediump_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.mediump_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.mediump_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.highp_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.highp_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.highp_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.highp_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.highp_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.highp_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.lowp_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.lowp_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.lowp_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.lowp_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.lowp_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.lowp_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.mediump_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.mediump_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.mediump_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.mediump_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.mediump_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.mediump_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.highp_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.highp_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.highp_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.highp_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.highp_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBZero.highp_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.lowp_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.lowp_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.lowp_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.lowp_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.lowp_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.lowp_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.mediump_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.mediump_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.mediump_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.mediump_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.mediump_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.mediump_compute
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.highp_vertex
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.highp_fragment
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.highp_geometry
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.highp_tess_control
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.highp_tess_eval
+dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.highp_compute
dEQP-GLES31.functional.shaders.builtin_functions.texture_size.samples_1_texture_2d
dEQP-GLES31.functional.shaders.builtin_functions.texture_size.samples_4_texture_2d
dEQP-GLES31.functional.shaders.builtin_functions.texture_size.samples_1_texture_2d_array
diff --git a/android/cts/master/src/gles3-test-issues.txt b/android/cts/master/src/gles3-test-issues.txt
index 91a625e..6ccbad7 100644
--- a/android/cts/master/src/gles3-test-issues.txt
+++ b/android/cts/master/src/gles3-test-issues.txt
@@ -171,3 +171,7 @@
dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.mediump_fragment.vec4
dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_vertex.vec3
dEQP-GLES3.functional.shaders.builtin_functions.precision.reflect.highp_fragment.vec3
+
+# Temporarily excluded: b/73070970
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.*
+
diff --git a/android/cts/master/src/vk-excluded-tests.txt b/android/cts/master/src/vk-excluded-tests.txt
index fee498d..00b6fe0 100644
--- a/android/cts/master/src/vk-excluded-tests.txt
+++ b/android/cts/master/src/vk-excluded-tests.txt
@@ -336,14 +336,6 @@
dEQP-VK.memory.requirements.dedicated_allocation.buffer.*
dEQP-VK.memory.requirements.dedicated_allocation.image.*
-# Issue: b/65844886
-dEQP-VK.image.mutable.*
-
-# Issue: b/67013571
-dEQP-VK.ubo.random.all_out_of_order_offsets.11
-dEQP-VK.ubo.random.all_out_of_order_offsets.45
-dEQP-VK.ubo.random.all_shared_buffer.48
-
# Issue: b/66464066
dEQP-VK.wsi.android.shared_presentable_image.scale_down.*
diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt
index c9d76f4..3da3f2a 100644
--- a/android/cts/master/vk-master.txt
+++ b/android/cts/master/vk-master.txt
@@ -169760,6 +169760,7 @@
dEQP-VK.ubo.random.all_shared_buffer.45
dEQP-VK.ubo.random.all_shared_buffer.46
dEQP-VK.ubo.random.all_shared_buffer.47
+dEQP-VK.ubo.random.all_shared_buffer.48
dEQP-VK.ubo.random.all_shared_buffer.49
dEQP-VK.ubo.random.all_out_of_order_offsets.0
dEQP-VK.ubo.random.all_out_of_order_offsets.1
@@ -169772,6 +169773,7 @@
dEQP-VK.ubo.random.all_out_of_order_offsets.8
dEQP-VK.ubo.random.all_out_of_order_offsets.9
dEQP-VK.ubo.random.all_out_of_order_offsets.10
+dEQP-VK.ubo.random.all_out_of_order_offsets.11
dEQP-VK.ubo.random.all_out_of_order_offsets.12
dEQP-VK.ubo.random.all_out_of_order_offsets.13
dEQP-VK.ubo.random.all_out_of_order_offsets.14
@@ -169805,6 +169807,7 @@
dEQP-VK.ubo.random.all_out_of_order_offsets.42
dEQP-VK.ubo.random.all_out_of_order_offsets.43
dEQP-VK.ubo.random.all_out_of_order_offsets.44
+dEQP-VK.ubo.random.all_out_of_order_offsets.45
dEQP-VK.ubo.random.all_out_of_order_offsets.46
dEQP-VK.ubo.random.all_out_of_order_offsets.47
dEQP-VK.ubo.random.all_out_of_order_offsets.48
@@ -172535,6 +172538,6054 @@
dEQP-VK.image.load_store_multisample.2d_array.r8g8b8a8_snorm_single_layer.samples_16
dEQP-VK.image.load_store_multisample.2d_array.r8g8b8a8_snorm_single_layer.samples_32
dEQP-VK.image.load_store_multisample.2d_array.r8g8b8a8_snorm_single_layer.samples_64
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_store_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_store_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_store_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_store_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_store_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_store_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sfloat_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sfloat_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sfloat_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_clear_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_copy_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_store_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_store_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_store_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_draw_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_clear_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_copy_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_store_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_store_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_store_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_draw_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d.r32_sfloat_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_clear_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_copy_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_store_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_store_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_store_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_draw_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_uint_r32g32b32a32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_uint_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_uint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_uint_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_uint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32_uint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32_uint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_store_load
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32_uint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d.r32_uint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_clear_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_copy_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_store_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_store_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_store_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_draw_load
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32b32a32_sint_r32g32b32a32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16b16a16_sint_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_sint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32g32_sint_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_store_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d.r16g16_sint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r32_sint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_store_load
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r32_sint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d.r32_sint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sfloat_r32g32b32a32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sfloat_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sfloat_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sfloat_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sfloat_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_uint_r32g32b32a32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_uint_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_uint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_uint_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_uint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_uint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32b32a32_sint_r32g32b32a32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16b16a16_sint_r32g32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_sint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r32g32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32g32_sint_r16g16b16a16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r16g16_sint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_unorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r32_sint_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_unorm_r8g8b8a8_snorm_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sfloat_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_uint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r16g16_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r32_sint_draw_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_clear_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_copy_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_store_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_store_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_store_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_store_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_store_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_store_texture_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_copy
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_copy_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_load
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_load_format_list
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_texture
+dEQP-VK.image.mutable.2d_array.r8g8b8a8_snorm_r8g8b8a8_unorm_draw_texture_format_list
dEQP-VK.image.format_reinterpret.1d.r32g32b32a32_sfloat_r32g32b32a32_uint
dEQP-VK.image.format_reinterpret.1d.r32g32b32a32_sfloat_r32g32b32a32_sint
dEQP-VK.image.format_reinterpret.1d.r16g16b16a16_sfloat_r16g16b16a16_uint
diff --git a/data/gles2/shaders/declarations.test b/data/gles2/shaders/declarations.test
index 4dfb0a4..80c513f 100644
--- a/data/gles2/shaders/declarations.test
+++ b/data/gles2/shaders/declarations.test
@@ -138,3 +138,63 @@
end
end # invalid_declarations
+
+group unspecified_precision "Invalid declarations with unspecified precision"
+
+ case float_partially_specified_fragment
+ expect compile_fail
+ vertex ""
+ ${VERTEX_DECLARATIONS}
+ void main() {}
+ ""
+ fragment ""
+ // no global precision qualifier (e.g. precision mediump float)
+ void main() {
+ mediump float x = 1.0;
+ vec3 y = vec3(x);
+ mediump vec4 z = vec4(y, x);
+ }
+ ""
+ end
+
+ case float_fragment
+ expect compile_fail
+ vertex ""
+ void main() {}
+ ""
+ fragment ""
+ void main() { float v; }
+ ""
+ end
+
+ case vec2_fragment
+ expect compile_fail
+ vertex ""
+ void main() {}
+ ""
+ fragment ""
+ void main() { vec2 v; }
+ ""
+ end
+
+ case vec3_fragment
+ expect compile_fail
+ vertex ""
+ void main() {}
+ ""
+ fragment ""
+ void main() { vec3 v; }
+ ""
+ end
+
+ case vec4_fragment
+ expect compile_fail
+ vertex ""
+ void main() {}
+ ""
+ fragment ""
+ void main() { vec4 v; }
+ ""
+ end
+
+end # unspecified_precision
diff --git a/data/gles3/shaders/arrays.test b/data/gles3/shaders/arrays.test
index 2144a11..4a9c5fe 100644
--- a/data/gles3/shaders/arrays.test
+++ b/data/gles3/shaders/arrays.test
@@ -1996,3 +1996,134 @@
end
end # invalid
+
+# https://github.com/KhronosGroup/WebGL/blob/master/sdk/tests/conformance2/glsl3/array-in-complex-expression.html
+group complex_expression "Arrays in complex expressions"
+
+ case and_short_circuits
+ version 300 es
+ values
+ {
+ output int g = -1;
+ }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ int[2] plus() {
+ ++g;
+ return int[2](g, g);
+ }
+
+ bool minus() {
+ --g;
+ return false;
+ }
+
+ void main() {
+ ${SETUP}
+ g = 0;
+ int a[2] = int[2](0, 0);
+ // The plus() call must not be evaluated, since && short-circuits
+ minus() && (a == plus());
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case or_short_circuits
+ version 300 es
+ values
+ {
+ output int g = -1;
+ }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ int[2] plus() {
+ ++g;
+ return int[2](g, g);
+ }
+
+ bool minus() {
+ --g;
+ return false;
+ }
+
+ void main() {
+ ${SETUP}
+ g = 0;
+ int a[2] = int[2](0, 0);
+ // The function call must not be evaluated, since && short-circuits
+ minus() && (a == plus());
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case ternary_only_evaluates_one_operand
+ version 300 es
+ values
+ {
+ output int g = 0;
+ }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ int[2] plus() {
+ ++g;
+ return int[2](g, g);
+ }
+
+ void main() {
+ ${SETUP}
+ g = 0;
+ int a[2] = int[2](0, 0);
+ // The function call must not be evaluated, since the condition is true.
+ (g == 0) ? true : (a == plus());
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case sequence_side_effects_affecting_compared_array_content
+ version 300 es
+ values
+ {
+ output bool success = true;
+ }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ int[2] func(int param) {
+ return int[2](param, param);
+ }
+
+ void main() {
+ ${SETUP}
+ int a[2];
+ for (int i = 0; i < 2; ++i) {
+ a[i] = 1;
+ }
+ int j = 0;
+ // Sequence operator evaluates operands from left to right (ESSL 3.00 section 5.9).
+ // The function call that returns the array needs to be evaluated after ++j
+ // for the expression to return the correct value (true).
+ success = ((++j), (a == func(j)));
+ ${OUTPUT}
+ }
+ ""
+ end
+
+end # complex_expression
diff --git a/data/gles3/shaders/declarations.test b/data/gles3/shaders/declarations.test
index 86f98d9..22945c8 100644
--- a/data/gles3/shaders/declarations.test
+++ b/data/gles3/shaders/declarations.test
@@ -589,3 +589,208 @@
end
end # invalid_declarations
+
+group unspecified_precision "Invalid declarations with unspecified precision"
+
+ case float_partially_specified_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ ${VERTEX_DECLARATIONS}
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ // no global precision qualifier (e.g. precision mediump float)
+ void main() {
+ mediump float x = 1.0;
+ vec3 y = vec3(x);
+ mediump vec4 z = vec4(y, x);
+ }
+ ""
+ end
+
+ case float_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ void main() { float v; }
+ ""
+ end
+
+ case vec2_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ void main() { vec2 v; }
+ ""
+ end
+
+ case vec3_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ void main() { vec3 v; }
+ ""
+ end
+
+ case vec4_fragment
+ version 300 es
+ expect compile_fail
+ vertex ""
+ #version 300 es
+ void main() {}
+ ""
+ fragment ""
+ #version 300 es
+ void main() { vec4 v; }
+ ""
+ end
+
+ case sampler3D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform sampler3D samp;
+ void main() {}
+ ""
+ end
+
+ case samplerCubeShadow
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform samplerCubeShadow samp;
+ void main() {}
+ ""
+ end
+
+ case sampler2DShadow
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform sampler2DShadow samp;
+ void main() {}
+ ""
+ end
+
+ case sampler2DArray
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform sampler2DArray samp;
+ void main() {}
+ ""
+ end
+
+ case sampler2DArrayShadow
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform sampler2DArrayShadow samp;
+ void main() {}
+ ""
+ end
+
+ case isampler2D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform isampler2D samp;
+ void main() {}
+ ""
+ end
+
+ case isampler3D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform isampler3D samp;
+ void main() {}
+ ""
+ end
+
+ case isamplerCube
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform isamplerCube samp;
+ void main() {}
+ ""
+ end
+
+ case isampler2DArray
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform isampler2DArray samp;
+ void main() {}
+ ""
+ end
+
+ case usampler2D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform usampler2D samp;
+ void main() {}
+ ""
+ end
+
+ case usampler3D
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform usampler3D samp;
+ void main() {}
+ ""
+ end
+
+ case usamplerCube
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform usamplerCube samp;
+ void main() {}
+ ""
+ end
+
+ case usampler2DArray
+ version 300 es
+ expect compile_fail
+ both ""
+ #version 300 es
+ uniform usampler2DArray samp;
+ void main() {}
+ ""
+ end
+
+end # unspecified_precision
diff --git a/data/gles3/shaders/indexing.test b/data/gles3/shaders/indexing.test
new file mode 100644
index 0000000..49eaa3b
--- /dev/null
+++ b/data/gles3/shaders/indexing.test
@@ -0,0 +1,304 @@
+# https://github.com/KhronosGroup/WebGL/blob/master/sdk/tests/conformance2/glsl3/vector-dynamic-indexing.html
+group moredynamic "More dynamic indexing tests"
+
+ case matrix_twice
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ void main() {
+ mat2 m = mat2(0.0, 0.0, 0.0, 1.0);
+ f = m[u_zero + 1][u_zero + 1];
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case with_value_from_indexing_expression
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ void main() {
+ ivec2 i = ivec2(0, 2);
+ vec4 v = vec4(0.0, 0.2, 1.0, 0.4);
+ f = v[i[u_zero + 1]];
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case lvalue
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ void main() {
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ v[u_zero + 1] = 5.0;
+ vec4 expected = vec4(1.0, 5.0, 3.0, 4.0);
+ f = 1.0 - distance(v, expected);
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case lvalue_with_value_from_indexing_expression
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ void main() {
+ ivec2 i = ivec2(0, 2);
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ v[i[u_zero + 1]] = 5.0;
+ vec4 expected = vec4(1.0, 2.0, 5.0, 4.0);
+ f = 1.0 - distance(v, expected);
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case builtin_fncall_out_parameter
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ void main() {
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ modf(5.5, v[u_zero + 3]);
+ vec4 expected = vec4(1.0, 2.0, 3.0, 5.0);
+ f = 1.0 - distance(v, expected);
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case user_defined_fncall_out_parameter
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ void foo(out float f) {
+ modf(5.5, f);
+ }
+ void main() {
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ foo(v[u_zero + 3]);
+ vec4 expected = vec4(1.0, 2.0, 3.0, 5.0);
+ f = 1.0 - distance(v, expected);
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case user_defined_fncall_inout_parameter
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ void foo(inout float f) {
+ float g = f + 2.5;
+ modf(g, f);
+ }
+ void main() {
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ foo(v[u_zero + 2]);
+ vec4 expected = vec4(1.0, 2.0, 5.0, 4.0);
+ f = 1.0 - distance(v, expected);
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case with_side_effects
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ int sideEffectCounter = 0;
+ int funcWithSideEffects() {
+ sideEffectCounter++;
+ return 2;
+ }
+ void main() {
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ v[funcWithSideEffects()] = 5.0;
+ vec4 expected = vec4(1.0, 2.0, 5.0, 4.0);
+ f = 1.0 - distance(v, expected);
+ if (sideEffectCounter != 1) {
+ f = 0.0;
+ }
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case inout_with_side_effects
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ int sideEffectCounter = 0;
+ int funcWithSideEffects() {
+ sideEffectCounter++;
+ return 2;
+ }
+ void main() {
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ v[funcWithSideEffects()]++;
+ vec4 expected = vec4(1.0, 2.0, 4.0, 4.0);
+ f = 1.0 - distance(v, expected);
+ if (sideEffectCounter != 1) {
+ f = 0.0;
+ }
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case user_defined_fncall_inout_parameter_with_index_with_side_effects
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ int sideEffectCounter = 0;
+ void foo(inout float f) {
+ float g = f + 2.5;
+ modf(g, f);
+ }
+ int funcWithSideEffects() {
+ sideEffectCounter++;
+ return 2;
+ }
+ void main() {
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ foo(v[funcWithSideEffects()]);
+ vec4 expected = vec4(1.0, 2.0, 5.0, 4.0);
+ f = 1.0 - distance(v, expected);
+ if (sideEffectCounter != 1) {
+ f = 0.0;
+ }
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case lvalue_with_uint
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ void main() {
+ vec4 v = vec4(1.0, 2.0, 3.0, 4.0);
+ v[u_zero] = 5.0;
+ vec4 expected = vec4(5.0, 2.0, 3.0, 4.0);
+ f = 1.0 - distance(v, expected);
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case uniform
+ version 300 es
+ values { output float f = 0.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform vec4 u_zeroVec;
+ uniform int u_zero;
+ void main() {
+ f = u_zeroVec[u_zero];
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case sequence_vector_lvalue
+ version 300 es
+ values { output bool success = true; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ int sideEffectCounter = 0;
+ float func() {
+ ++sideEffectCounter;
+ return -1.0;
+ }
+ void main() {
+ vec4 v = vec4(0.0, 2.0, 4.0, 6.0);
+ float f = (func(), (++v[u_zero + sideEffectCounter]));
+ success = (abs(f - 3.0) < 0.01 && abs(v[1] - 3.0) < 0.01 && sideEffectCounter == 1);
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case matrix_twice_in_lvalue
+ version 300 es
+ values { output float f = 1.0; }
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ uniform int u_zero;
+ void main() {
+ mat2 m = mat2(0.0, 0.0, 0.0, 0.0);
+ m[u_zero + 1][u_zero + 1] = float(u_zero + 1);
+ f = m[1][1];
+ ${OUTPUT}
+ }
+ ""
+ end
+
+end # moredynamic
diff --git a/data/gles3/shaders/loops.test b/data/gles3/shaders/loops.test
index a8f1e4d..619179b 100644
--- a/data/gles3/shaders/loops.test
+++ b/data/gles3/shaders/loops.test
@@ -27,3 +27,151 @@
end
end # custom
+
+# https://github.com/KhronosGroup/WebGL/blob/master/sdk/tests/conformance2/glsl3/short-circuiting-in-loop-condition.html
+group short_circuit "Short-circuiting operator in a loop using a function call with side effects"
+
+ case while
+ version 300 es
+ values
+ {
+ input bool in0 = [ false | true ];
+ output int sideEffectCounter = [ 0 | 10 ];
+ }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ precision mediump int;
+
+ ${DECLARATIONS}
+
+ bool foo() {
+ ++sideEffectCounter;
+ return true;
+ }
+
+ void main()
+ {
+ ${SETUP}
+ sideEffectCounter = 0;
+ int iterations = 0;
+ while (in0 && foo()) {
+ ++iterations;
+ if (iterations >= 10) {
+ break;
+ }
+ }
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case for
+ version 300 es
+ values
+ {
+ input bool in0 = [ false | true ];
+ output int sideEffectCounter = [ 0 | 10 ];
+ }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ precision mediump int;
+
+ ${DECLARATIONS}
+
+ bool foo() {
+ ++sideEffectCounter;
+ return true;
+ }
+
+ void main()
+ {
+ ${SETUP}
+ sideEffectCounter = 0;
+ for (int iterations = 0; true; in0 && foo()) {
+ ++iterations;
+ if (iterations > 10) {
+ break;
+ }
+ }
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case do_while
+ version 300 es
+ values
+ {
+ input bool in0 = [ false | true ];
+ output int sideEffectCounter = [ 0 | 10 ];
+ }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ precision mediump int;
+
+ ${DECLARATIONS}
+
+ bool foo() {
+ ++sideEffectCounter;
+ return true;
+ }
+
+ void main()
+ {
+ ${SETUP}
+ sideEffectCounter = 0;
+ int iterations = 0;
+ do {
+ ++iterations;
+ if (iterations > 10) {
+ break;
+ }
+ } while (in0 && foo());
+ ${OUTPUT}
+ }
+ ""
+ end
+
+ case while_sequence
+ version 300 es
+ values
+ {
+ input bool in0 = [ false | true ];
+ output int sideEffectCounter = [ 0 | 10 ];
+ }
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ precision mediump int;
+
+ ${DECLARATIONS}
+
+ bool foo() {
+ ++sideEffectCounter;
+ return true;
+ }
+
+ void main()
+ {
+ ${SETUP}
+ sideEffectCounter = 0;
+ int iterations = 0;
+ while ((in0, in0 && foo())) {
+ ++iterations;
+ if (iterations >= 10) {
+ break;
+ }
+ }
+ ${OUTPUT}
+ }
+ ""
+ end
+
+end # short_circuit
diff --git a/framework/common/tcuApp.cpp b/framework/common/tcuApp.cpp
index 949f083..fa76c7d 100644
--- a/framework/common/tcuApp.cpp
+++ b/framework/common/tcuApp.cpp
@@ -98,7 +98,7 @@
// Initialize watchdog
if (cmdLine.isWatchDogEnabled())
- TCU_CHECK_INTERNAL(m_watchDog = qpWatchDog_create(onWatchdogTimeout, this, 300, 30));
+ TCU_CHECK_INTERNAL(m_watchDog = qpWatchDog_create(onWatchdogTimeout, this, WATCHDOG_TOTAL_TIME_LIMIT_SECS, WATCHDOG_INTERVAL_TIME_LIMIT_SECS));
// Initialize crash handler.
if (cmdLine.isCrashHandlingEnabled())
diff --git a/framework/common/tcuApp.hpp b/framework/common/tcuApp.hpp
index e714160..5c25fe1 100644
--- a/framework/common/tcuApp.hpp
+++ b/framework/common/tcuApp.hpp
@@ -42,6 +42,12 @@
class TestLog;
class TestPackageRoot;
+enum
+{
+ WATCHDOG_TOTAL_TIME_LIMIT_SECS = 300,
+ WATCHDOG_INTERVAL_TIME_LIMIT_SECS = 30
+};
+
/*--------------------------------------------------------------------*//*!
* \brief Test application
*
diff --git a/framework/common/tcuFuzzyImageCompare.cpp b/framework/common/tcuFuzzyImageCompare.cpp
index 596ab83..4e76476 100644
--- a/framework/common/tcuFuzzyImageCompare.cpp
+++ b/framework/common/tcuFuzzyImageCompare.cpp
@@ -318,7 +318,7 @@
for (int y = 1; y < height-1; y++)
{
- for (int x = 1; x < width-1; x += params.maxSampleSkip > 0 ? (int)rnd.getInt(0, params.maxSampleSkip) : 1)
+ for (int x = 1; x < width-1; x += 1 + (int)rnd.getInt(0, params.maxSampleSkip))
{
const deUint32 minDist2RefToCmp = distSquaredToNeighbor<4>(rnd, readUnorm8<4>(refAccess, x, y), cmpAccess, x, y);
const deUint32 minDist2CmpToRef = distSquaredToNeighbor<4>(rnd, readUnorm8<4>(cmpAccess, x, y), refAccess, x, y);
diff --git a/framework/common/tcuInterval.hpp b/framework/common/tcuInterval.hpp
index cc271a1..57025ac 100644
--- a/framework/common/tcuInterval.hpp
+++ b/framework/common/tcuInterval.hpp
@@ -58,42 +58,60 @@
{
public:
// Empty interval.
- Interval (void)
- : m_hasNaN (false)
- , m_lo (TCU_INFINITY)
- , m_hi (-TCU_INFINITY) {}
+ Interval (void)
+ : m_hasNaN (false)
+ , m_lo (TCU_INFINITY)
+ , m_hi (-TCU_INFINITY)
+ , m_warningLo (-TCU_INFINITY)
+ , m_warningHi (TCU_INFINITY) {}
// Intentionally not explicit. Conversion from double to Interval is common
// and reasonable.
- Interval (double val)
- : m_hasNaN (!!deIsNaN(val))
- , m_lo (m_hasNaN ? TCU_INFINITY : val)
- , m_hi (m_hasNaN ? -TCU_INFINITY : val) {}
+ Interval (double val)
+ : m_hasNaN (!!deIsNaN(val))
+ , m_lo (m_hasNaN ? TCU_INFINITY : val)
+ , m_hi (m_hasNaN ? -TCU_INFINITY : val)
+ , m_warningLo (-TCU_INFINITY)
+ , m_warningHi (TCU_INFINITY) {}
- Interval (bool hasNaN_, double lo_, double hi_)
- : m_hasNaN(hasNaN_), m_lo(lo_), m_hi(hi_) {}
+
+ Interval(bool hasNaN_, double lo_, double hi_)
+ : m_hasNaN(hasNaN_), m_lo(lo_), m_hi(hi_), m_warningLo(-TCU_INFINITY), m_warningHi(TCU_INFINITY) {}
+
+ Interval(bool hasNaN_, double lo_, double hi_, double wlo_, double whi_)
+ : m_hasNaN(hasNaN_), m_lo(lo_), m_hi(hi_), m_warningLo(wlo_), m_warningHi(whi_) {}
Interval (const Interval& a, const Interval& b)
- : m_hasNaN (a.m_hasNaN || b.m_hasNaN)
- , m_lo (de::min(a.lo(), b.lo()))
- , m_hi (de::max(a.hi(), b.hi())) {}
+ : m_hasNaN (a.m_hasNaN || b.m_hasNaN)
+ , m_lo (de::min(a.lo(), b.lo()))
+ , m_hi (de::max(a.hi(), b.hi()))
+ , m_warningLo (de::min(a.warningLo(), b.warningLo()))
+ , m_warningHi (de::max(a.warningHi(), b.warningHi())) {}
double length (void) const { return m_hi - m_lo; }
double lo (void) const { return m_lo; }
double hi (void) const { return m_hi; }
+ double warningLo (void) const { return m_warningLo; }
+ double warningHi (void) const { return m_warningHi; }
bool hasNaN (void) const { return m_hasNaN; }
Interval nan (void) const { return m_hasNaN ? TCU_NAN : Interval(); }
bool empty (void) const { return m_lo > m_hi; }
bool isFinite (void) const { return m_lo > -TCU_INFINITY && m_hi < TCU_INFINITY; }
bool isOrdinary (void) const { return !hasNaN() && !empty() && isFinite(); }
+ void warning (double lo_, double hi_)
+ {
+ m_warningLo = lo_;
+ m_warningHi = hi_;
+ }
Interval operator| (const Interval& other) const
{
return Interval(m_hasNaN || other.m_hasNaN,
de::min(m_lo, other.m_lo),
- de::max(m_hi, other.m_hi));
-
+ de::max(m_hi, other.m_hi),
+ de::min(m_warningLo, other.m_warningLo),
+ de::max(m_warningHi, other.m_warningHi));
}
Interval& operator|= (const Interval& other)
@@ -105,7 +123,9 @@
{
return Interval(m_hasNaN && other.m_hasNaN,
de::max(m_lo, other.m_lo),
- de::min(m_hi, other.m_hi));
+ de::min(m_hi, other.m_hi),
+ de::max(m_warningLo, other.m_warningLo),
+ de::min(m_warningHi, other.m_warningHi));
}
Interval& operator&= (const Interval& other)
@@ -119,6 +139,12 @@
(!other.hasNaN() || hasNaN()));
}
+ bool containsWarning(const Interval& other) const
+ {
+ return (other.lo() >= warningLo() && other.hi() <= warningHi() &&
+ (!other.hasNaN() || hasNaN()));
+ }
+
bool intersects (const Interval& other) const
{
return ((other.hi() >= lo() && other.lo() <= hi()) ||
@@ -127,7 +153,7 @@
Interval operator- (void) const
{
- return Interval(hasNaN(), -hi(), -lo());
+ return Interval(hasNaN(), -hi(), -lo(), -warningHi(), -warningLo());
}
static Interval unbounded (bool nan = false)
@@ -151,6 +177,8 @@
bool m_hasNaN;
double m_lo;
double m_hi;
+ double m_warningLo;
+ double m_warningHi;
} DE_WARN_UNUSED_TYPE;
inline Interval operator+ (const Interval& x) { return x; }
diff --git a/framework/common/tcuPixelFormat.hpp b/framework/common/tcuPixelFormat.hpp
index 2aa60c3..e7f9936 100644
--- a/framework/common/tcuPixelFormat.hpp
+++ b/framework/common/tcuPixelFormat.hpp
@@ -55,6 +55,20 @@
{
}
+ static inline int channelThreshold(int bits)
+ {
+ if (bits <= 8)
+ {
+ // Threshold is 2^(8 - bits)
+ return 1 << (8 - bits);
+ }
+ else
+ {
+ // Threshold is bound by the 8-bit buffer value
+ return 1;
+ }
+ }
+
/*--------------------------------------------------------------------*//*!
* \brief Get default threshold for per-pixel comparison for this format
*
@@ -64,21 +78,33 @@
inline RGBA getColorThreshold (void) const
{
return RGBA(
- 1 << (8 - redBits),
- 1 << (8 - greenBits),
- 1 << (8 - blueBits),
- (alphaBits > 0) ? (1 << (8 - alphaBits)) : 0);
+ channelThreshold(redBits),
+ channelThreshold(greenBits),
+ channelThreshold(blueBits),
+ alphaBits ? channelThreshold(alphaBits) : 0);
}
static inline int convertChannel (int val, int bits)
{
- if (bits == 1)
+ if (bits == 0)
+ {
+ return 0;
+ }
+ else if (bits == 1)
+ {
return (val & 0x80) ? 0xff : 0;
+ }
+ else if (bits < 8)
+ {
+ // Emulate precision reduction by replicating the upper bits as the fractional component
+ int intComp = val >> (8 - bits);
+ int fractComp = (intComp << (24 - bits)) | (intComp << (24 - 2 * bits)) | (intComp << (24 - 3 * bits));
+ return (intComp << (8 - bits)) | (fractComp >> (bits + 16));
+ }
else
{
- DE_ASSERT(deInRange32(bits, 4, 8));
- int c = val >> (8-bits);
- return (c << (8-bits)) | (c >> (2*bits-8));
+ // Bits greater than or equal to 8 will have full precision, so no reduction
+ return val;
}
}
diff --git a/framework/common/tcuTextureUtil.cpp b/framework/common/tcuTextureUtil.cpp
index 48e49e2..215442b 100644
--- a/framework/common/tcuTextureUtil.cpp
+++ b/framework/common/tcuTextureUtil.cpp
@@ -381,11 +381,11 @@
// Misc formats.
case TextureFormat::SIGNED_INT8: cMin = -128.0f; cMax = 127.0f; break;
case TextureFormat::SIGNED_INT16: cMin = -32768.0f; cMax = 32767.0f; break;
- case TextureFormat::SIGNED_INT32: cMin = -2147483648.0f; cMax = 2147483647.0f; break;
+ case TextureFormat::SIGNED_INT32: cMin = -2147483520.0f; cMax = 2147483520.0f; break; // Maximum exactly representable 31-bit integer: (2^24 - 1) * 2^7
case TextureFormat::UNSIGNED_INT8: cMin = 0.0f; cMax = 255.0f; break;
case TextureFormat::UNSIGNED_INT16: cMin = 0.0f; cMax = 65535.0f; break;
case TextureFormat::UNSIGNED_INT24: cMin = 0.0f; cMax = 16777215.0f; break;
- case TextureFormat::UNSIGNED_INT32: cMin = 0.0f; cMax = 4294967295.f; break;
+ case TextureFormat::UNSIGNED_INT32: cMin = 0.0f; cMax = 4294967040.f; break; // Maximum exactly representable 32-bit integer: (2^24 - 1) * 2^8
case TextureFormat::HALF_FLOAT: cMin = -1e3f; cMax = 1e3f; break;
case TextureFormat::FLOAT: cMin = -1e5f; cMax = 1e5f; break;
case TextureFormat::FLOAT64: cMin = -1e5f; cMax = 1e5f; break;
diff --git a/framework/delibs/cmake/CFlags.cmake b/framework/delibs/cmake/CFlags.cmake
index 8a4b9ad..bcb11ab 100644
--- a/framework/delibs/cmake/CFlags.cmake
+++ b/framework/delibs/cmake/CFlags.cmake
@@ -53,6 +53,11 @@
# Turn on -Wstrict-overflow=5 and check all warnings before removing
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fwrapv")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fwrapv")
+
+ # Force compiler to not export any symbols.
+ # Any static libraries build are linked into the standalone executable binaries.
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
elseif (DE_COMPILER_IS_MSC)
# Compiler flags for msc
diff --git a/framework/egl/wrapper/eglwEnums.inl b/framework/egl/wrapper/eglwEnums.inl
index b0e51b6..52fee22 100644
--- a/framework/egl/wrapper/eglwEnums.inl
+++ b/framework/egl/wrapper/eglwEnums.inl
@@ -272,7 +272,20 @@
#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
+#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347
+#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348
+#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349
+#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A
+#define EGL_METADATA_SCALING_EXT 50000
#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
+#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360
+#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361
#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363
diff --git a/framework/egl/wrapper/eglwEnumsC.inl b/framework/egl/wrapper/eglwEnumsC.inl
index 5a1cf17..52a26a5 100644
--- a/framework/egl/wrapper/eglwEnumsC.inl
+++ b/framework/egl/wrapper/eglwEnumsC.inl
@@ -276,3 +276,16 @@
#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363
+#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360
+#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
+#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347
+#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348
+#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349
+#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A
+#
\ No newline at end of file
diff --git a/framework/opengl/gluCallLogWrapper.inl b/framework/opengl/gluCallLogWrapper.inl
index 0743712..d9f3b5d 100644
--- a/framework/opengl/gluCallLogWrapper.inl
+++ b/framework/opengl/gluCallLogWrapper.inl
@@ -1236,6 +1236,20 @@
m_gl.framebufferTextureLayer(target, attachment, texture, level, layer);
}
+void CallLogWrapper::glFramebufferTextureMultisampleMultiviewOVR (glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLsizei samples, glw::GLint baseViewIndex, glw::GLsizei numViews)
+{
+ if (m_enableLog)
+ m_log << TestLog::Message << "glFramebufferTextureMultisampleMultiviewOVR(" << toHex(target) << ", " << toHex(attachment) << ", " << texture << ", " << level << ", " << samples << ", " << baseViewIndex << ", " << numViews << ");" << TestLog::EndMessage;
+ m_gl.framebufferTextureMultisampleMultiviewOVR(target, attachment, texture, level, samples, baseViewIndex, numViews);
+}
+
+void CallLogWrapper::glFramebufferTextureMultiviewOVR (glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLint baseViewIndex, glw::GLsizei numViews)
+{
+ if (m_enableLog)
+ m_log << TestLog::Message << "glFramebufferTextureMultiviewOVR(" << toHex(target) << ", " << toHex(attachment) << ", " << texture << ", " << level << ", " << baseViewIndex << ", " << numViews << ");" << TestLog::EndMessage;
+ m_gl.framebufferTextureMultiviewOVR(target, attachment, texture, level, baseViewIndex, numViews);
+}
+
void CallLogWrapper::glFrontFace (glw::GLenum mode)
{
if (m_enableLog)
diff --git a/framework/opengl/gluCallLogWrapperApi.inl b/framework/opengl/gluCallLogWrapperApi.inl
index 71bddd9..9acbee0 100644
--- a/framework/opengl/gluCallLogWrapperApi.inl
+++ b/framework/opengl/gluCallLogWrapperApi.inl
@@ -176,6 +176,8 @@
void glFramebufferTexture2D (glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level);
void glFramebufferTexture3D (glw::GLenum target, glw::GLenum attachment, glw::GLenum textarget, glw::GLuint texture, glw::GLint level, glw::GLint zoffset);
void glFramebufferTextureLayer (glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLint layer);
+void glFramebufferTextureMultisampleMultiviewOVR (glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLsizei samples, glw::GLint baseViewIndex, glw::GLsizei numViews);
+void glFramebufferTextureMultiviewOVR (glw::GLenum target, glw::GLenum attachment, glw::GLuint texture, glw::GLint level, glw::GLint baseViewIndex, glw::GLsizei numViews);
void glFrontFace (glw::GLenum mode);
void glGenBuffers (glw::GLsizei n, glw::GLuint *buffers);
void glGenFramebuffers (glw::GLsizei n, glw::GLuint *framebuffers);
diff --git a/framework/opengl/wrapper/glwApi.inl b/framework/opengl/wrapper/glwApi.inl
index befa4b9..4e4f520 100644
--- a/framework/opengl/wrapper/glwApi.inl
+++ b/framework/opengl/wrapper/glwApi.inl
@@ -176,6 +176,8 @@
#define glFramebufferTexture2D glwFramebufferTexture2D
#define glFramebufferTexture3D glwFramebufferTexture3D
#define glFramebufferTextureLayer glwFramebufferTextureLayer
+#define glFramebufferTextureMultisampleMultiviewOVR glwFramebufferTextureMultisampleMultiviewOVR
+#define glFramebufferTextureMultiviewOVR glwFramebufferTextureMultiviewOVR
#define glFrontFace glwFrontFace
#define glGenBuffers glwGenBuffers
#define glGenFramebuffers glwGenFramebuffers
@@ -836,6 +838,8 @@
void glwFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
void glwFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
void glwFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void glwFramebufferTextureMultisampleMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews);
+void glwFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
void glwFrontFace (GLenum mode);
void glwGenBuffers (GLsizei n, GLuint *buffers);
void glwGenFramebuffers (GLsizei n, GLuint *framebuffers);
diff --git a/framework/opengl/wrapper/glwEnums.inl b/framework/opengl/wrapper/glwEnums.inl
index d6e51ab..6506906 100644
--- a/framework/opengl/wrapper/glwEnums.inl
+++ b/framework/opengl/wrapper/glwEnums.inl
@@ -1644,3 +1644,7 @@
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 0x93DD
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630
+#define GL_MAX_VIEWS_OVR 0x9631
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632
+#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633
diff --git a/framework/opengl/wrapper/glwFunctionTypes.inl b/framework/opengl/wrapper/glwFunctionTypes.inl
index 63adcec..9c0bdd9 100644
--- a/framework/opengl/wrapper/glwFunctionTypes.inl
+++ b/framework/opengl/wrapper/glwFunctionTypes.inl
@@ -176,6 +176,8 @@
typedef GLW_APICALL void (GLW_APIENTRY* glFramebufferTexture2DFunc) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef GLW_APICALL void (GLW_APIENTRY* glFramebufferTexture3DFunc) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
typedef GLW_APICALL void (GLW_APIENTRY* glFramebufferTextureLayerFunc) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef GLW_APICALL void (GLW_APIENTRY* glFramebufferTextureMultisampleMultiviewOVRFunc) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews);
+typedef GLW_APICALL void (GLW_APIENTRY* glFramebufferTextureMultiviewOVRFunc) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
typedef GLW_APICALL void (GLW_APIENTRY* glFrontFaceFunc) (GLenum mode);
typedef GLW_APICALL void (GLW_APIENTRY* glGenBuffersFunc) (GLsizei n, GLuint *buffers);
typedef GLW_APICALL void (GLW_APIENTRY* glGenFramebuffersFunc) (GLsizei n, GLuint *framebuffers);
diff --git a/framework/opengl/wrapper/glwFunctions.inl b/framework/opengl/wrapper/glwFunctions.inl
index 4d304eb..0895423 100644
--- a/framework/opengl/wrapper/glwFunctions.inl
+++ b/framework/opengl/wrapper/glwFunctions.inl
@@ -176,6 +176,8 @@
glFramebufferTexture2DFunc framebufferTexture2D;
glFramebufferTexture3DFunc framebufferTexture3D;
glFramebufferTextureLayerFunc framebufferTextureLayer;
+glFramebufferTextureMultisampleMultiviewOVRFunc framebufferTextureMultisampleMultiviewOVR;
+glFramebufferTextureMultiviewOVRFunc framebufferTextureMultiviewOVR;
glFrontFaceFunc frontFace;
glGenBuffersFunc genBuffers;
glGenFramebuffersFunc genFramebuffers;
diff --git a/framework/opengl/wrapper/glwImpl.inl b/framework/opengl/wrapper/glwImpl.inl
index ed39d82..c958017 100644
--- a/framework/opengl/wrapper/glwImpl.inl
+++ b/framework/opengl/wrapper/glwImpl.inl
@@ -1388,6 +1388,22 @@
gl->framebufferTextureLayer(target, attachment, texture, level, layer);
}
+void glwFramebufferTextureMultisampleMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews)
+{
+ const glw::Functions* gl = glw::getCurrentThreadFunctions();
+ if (!gl)
+ return;
+ gl->framebufferTextureMultisampleMultiviewOVR(target, attachment, texture, level, samples, baseViewIndex, numViews);
+}
+
+void glwFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews)
+{
+ const glw::Functions* gl = glw::getCurrentThreadFunctions();
+ if (!gl)
+ return;
+ gl->framebufferTextureMultiviewOVR(target, attachment, texture, level, baseViewIndex, numViews);
+}
+
void glwFrontFace (GLenum mode)
{
const glw::Functions* gl = glw::getCurrentThreadFunctions();
diff --git a/framework/opengl/wrapper/glwInitExtES.inl b/framework/opengl/wrapper/glwInitExtES.inl
index fc74f3b..a167f56 100644
--- a/framework/opengl/wrapper/glwInitExtES.inl
+++ b/framework/opengl/wrapper/glwInitExtES.inl
@@ -137,3 +137,13 @@
gl->drawRangeElementsBaseVertex = (glDrawRangeElementsBaseVertexFunc) loader->get("glDrawRangeElementsBaseVertexOES");
gl->multiDrawElementsBaseVertex = (glMultiDrawElementsBaseVertexFunc) loader->get("glMultiDrawElementsBaseVertexOES");
}
+
+if (de::contains(extSet, "GL_OVR_multiview"))
+{
+ gl->framebufferTextureMultiviewOVR = (glFramebufferTextureMultiviewOVRFunc) loader->get("glFramebufferTextureMultiviewOVR");
+}
+
+if (de::contains(extSet, "GL_OVR_multiview_multisampled_render_to_texture"))
+{
+ gl->framebufferTextureMultisampleMultiviewOVR = (glFramebufferTextureMultisampleMultiviewOVRFunc) loader->get("glFramebufferTextureMultisampleMultiviewOVR");
+}
diff --git a/framework/opengl/wrapper/glwInitExtGL.inl b/framework/opengl/wrapper/glwInitExtGL.inl
index 590ef0d..2196cdc 100644
--- a/framework/opengl/wrapper/glwInitExtGL.inl
+++ b/framework/opengl/wrapper/glwInitExtGL.inl
@@ -38,3 +38,8 @@
gl->getnUniformuiv = (glGetnUniformuivFunc) loader->get("glGetnUniformuiv");
gl->readnPixels = (glReadnPixelsFunc) loader->get("glReadnPixels");
}
+
+if (de::contains(extSet, "GL_OVR_multiview"))
+{
+ gl->framebufferTextureMultiviewOVR = (glFramebufferTextureMultiviewOVRFunc) loader->get("glFramebufferTextureMultiviewOVR");
+}
diff --git a/framework/platform/CMakeLists.txt b/framework/platform/CMakeLists.txt
index d13f8c9..77a5447 100644
--- a/framework/platform/CMakeLists.txt
+++ b/framework/platform/CMakeLists.txt
@@ -83,6 +83,12 @@
include_directories(wayland)
endif()
+ elseif (DE_OS_IS_UNIX AND DEQP_USE_SURFACELESS)
+ set(TCUTIL_PLATFORM_SRCS
+ surfaceless/tcuSurfacelessPlatform.hpp
+ surfaceless/tcuSurfacelessPlatform.cpp
+ )
+
elseif (DE_OS_IS_ANDROID)
set(TCUTIL_PLATFORM_SRCS
android/tcuAndroidExecService.cpp
diff --git a/framework/platform/android/tcuAndroidMain.cpp b/framework/platform/android/tcuAndroidMain.cpp
index fa14c1e..620b9f6 100644
--- a/framework/platform/android/tcuAndroidMain.cpp
+++ b/framework/platform/android/tcuAndroidMain.cpp
@@ -34,7 +34,7 @@
DE_BEGIN_EXTERN_C
-void createTestActivity (ANativeActivity* activity, void* savedState, size_t savedStateSize)
+JNIEXPORT void JNICALL createTestActivity (ANativeActivity* activity, void* savedState, size_t savedStateSize)
{
DE_UNREF(savedState && savedStateSize);
try
diff --git a/framework/platform/lnx/X11/tcuLnxX11.cpp b/framework/platform/lnx/X11/tcuLnxX11.cpp
index 3f72b2b..5aef054 100644
--- a/framework/platform/lnx/X11/tcuLnxX11.cpp
+++ b/framework/platform/lnx/X11/tcuLnxX11.cpp
@@ -55,6 +55,13 @@
XlibDisplay::XlibDisplay (EventState& eventState, const char* name)
: DisplayBase (eventState)
{
+ // From man:XinitThreads(3):
+ //
+ // The XInitThreads function initializes Xlib support for concurrent
+ // threads. This function must be the first Xlib function
+ // a multi-threaded program calls, and it must complete before any other
+ // Xlib call is made.
+ DE_CHECK_RUNTIME_ERR(XInitThreads() != 0);
m_display = XOpenDisplay((char*)name); // Won't modify argument string.
if (!m_display)
throw ResourceError("Failed to open display", name, __FILE__, __LINE__);
diff --git a/framework/platform/null/tcuNullRenderContextFuncs.inl b/framework/platform/null/tcuNullRenderContextFuncs.inl
index 8b39a19..0f00e72 100644
--- a/framework/platform/null/tcuNullRenderContextFuncs.inl
+++ b/framework/platform/null/tcuNullRenderContextFuncs.inl
@@ -1461,6 +1461,29 @@
}
+GLW_APICALL void GLW_APIENTRY glFramebufferTextureMultisampleMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews)
+{
+ DE_UNREF(target);
+ DE_UNREF(attachment);
+ DE_UNREF(texture);
+ DE_UNREF(level);
+ DE_UNREF(samples);
+ DE_UNREF(baseViewIndex);
+ DE_UNREF(numViews);
+
+}
+
+GLW_APICALL void GLW_APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews)
+{
+ DE_UNREF(target);
+ DE_UNREF(attachment);
+ DE_UNREF(texture);
+ DE_UNREF(level);
+ DE_UNREF(baseViewIndex);
+ DE_UNREF(numViews);
+
+}
+
GLW_APICALL void GLW_APIENTRY glFrontFace (GLenum mode)
{
DE_UNREF(mode);
diff --git a/framework/platform/null/tcuNullRenderContextInitFuncs.inl b/framework/platform/null/tcuNullRenderContextInitFuncs.inl
index a6c58fe..b6478b0 100644
--- a/framework/platform/null/tcuNullRenderContextInitFuncs.inl
+++ b/framework/platform/null/tcuNullRenderContextInitFuncs.inl
@@ -176,6 +176,8 @@
gl->framebufferTexture2D = glFramebufferTexture2D;
gl->framebufferTexture3D = glFramebufferTexture3D;
gl->framebufferTextureLayer = glFramebufferTextureLayer;
+gl->framebufferTextureMultisampleMultiviewOVR = glFramebufferTextureMultisampleMultiviewOVR;
+gl->framebufferTextureMultiviewOVR = glFramebufferTextureMultiviewOVR;
gl->frontFace = glFrontFace;
gl->genBuffers = glGenBuffers;
gl->genFramebuffers = glGenFramebuffers;
diff --git a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
new file mode 100644
index 0000000..f1fb2d5
--- /dev/null
+++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
@@ -0,0 +1,476 @@
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program Tester Core
+ * ----------------------------------------
+ *
+ * Copyright 2015 Intel Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief surfaceless platform
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuSurfacelessPlatform.hpp"
+
+#include <string>
+#include <vector>
+#include <sys/utsname.h>
+
+#include "deDynamicLibrary.hpp"
+#include "deMemory.h"
+#include "deSTLUtil.hpp"
+#include "egluUtil.hpp"
+#include "egluGLUtil.hpp"
+#include "eglwEnums.hpp"
+#include "eglwLibrary.hpp"
+#include "gluPlatform.hpp"
+#include "gluRenderConfig.hpp"
+#include "glwInitES20Direct.hpp"
+#include "glwInitES30Direct.hpp"
+#include "glwInitFunctions.hpp"
+#include "tcuFunctionLibrary.hpp"
+#include "tcuPixelFormat.hpp"
+#include "tcuPlatform.hpp"
+#include "tcuRenderTarget.hpp"
+#include "vkPlatform.hpp"
+
+#include <EGL/egl.h>
+
+using std::string;
+using std::vector;
+
+#if !defined(EGL_KHR_create_context)
+ #define EGL_CONTEXT_FLAGS_KHR 0x30FC
+ #define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
+ #define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
+ #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
+ #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
+ #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
+ #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
+ #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
+ #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
+ #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
+ #define EGL_KHR_create_context 1
+ #define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
+ #define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
+ #define EGL_OPENGL_ES3_BIT_KHR 0x00000040
+#endif // EGL_KHR_create_context
+
+// Default library names
+#if !defined(DEQP_GLES2_LIBRARY_PATH)
+# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
+#endif
+
+#if !defined(DEQP_GLES3_LIBRARY_PATH)
+# define DEQP_GLES3_LIBRARY_PATH DEQP_GLES2_LIBRARY_PATH
+#endif
+
+#if !defined(DEQP_OPENGL_LIBRARY_PATH)
+# define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
+#endif
+
+namespace tcu
+{
+namespace surfaceless
+{
+
+class VulkanLibrary : public vk::Library
+{
+public:
+ VulkanLibrary (void)
+ : m_library ("libvulkan.so.1")
+ , m_driver (m_library)
+ {
+ }
+
+ const vk::PlatformInterface& getPlatformInterface (void) const
+ {
+ return m_driver;
+ }
+
+private:
+ const tcu::DynamicFunctionLibrary m_library;
+ const vk::PlatformDriver m_driver;
+};
+
+// Copied from tcuX11Platform.cpp
+class VulkanPlatform : public vk::Platform
+{
+public:
+ vk::Library* createLibrary (void) const
+ {
+ return new VulkanLibrary();
+ }
+
+ void describePlatform (std::ostream& dst) const
+ {
+ utsname sysInfo;
+
+ deMemset(&sysInfo, 0, sizeof(sysInfo));
+
+ if (uname(&sysInfo) != 0)
+ throw std::runtime_error("uname() failed");
+
+ dst << "OS: " << sysInfo.sysname << " " << sysInfo.release << " " << sysInfo.version << "\n";
+ dst << "CPU: " << sysInfo.machine << "\n";
+ }
+
+ // FINISHME: Query actual memory limits.
+ //
+ // These hard-coded memory limits were copied from tcuX11Platform.cpp,
+ // and they work well enough for Intel platforms.
+ void getMemoryLimits (vk::PlatformMemoryLimits& limits) const
+ {
+ limits.totalSystemMemory = 256*1024*1024;
+ limits.totalDeviceLocalMemory = 128*1024*1024;
+ limits.deviceMemoryAllocationGranularity = 64*1024;
+ limits.devicePageSize = 4096;
+ limits.devicePageTableEntrySize = 8;
+ limits.devicePageTableHierarchyLevels = 3;
+ }
+};
+
+bool isEGLExtensionSupported(
+ const eglw::Library& egl,
+ eglw::EGLDisplay display,
+ const std::string& extName)
+{
+ const vector<string> exts = eglu::getClientExtensions(egl);
+ return de::contains(exts.begin(), exts.end(), extName);
+}
+
+class GetProcFuncLoader : public glw::FunctionLoader
+{
+public:
+ GetProcFuncLoader(const eglw::Library& egl): m_egl(egl)
+ {
+ }
+
+ glw::GenericFuncType get(const char* name) const
+ {
+ return (glw::GenericFuncType)m_egl.getProcAddress(name);
+ }
+protected:
+ const eglw::Library& m_egl;
+};
+
+class DynamicFuncLoader : public glw::FunctionLoader
+{
+public:
+ DynamicFuncLoader(de::DynamicLibrary* library): m_library(library)
+ {
+ }
+
+ glw::GenericFuncType get(const char* name) const
+ {
+ return (glw::GenericFuncType)m_library->getFunction(name);
+ }
+
+private:
+ de::DynamicLibrary* m_library;
+};
+
+class Platform : public tcu::Platform, public glu::Platform
+{
+public:
+ Platform (void);
+ const glu::Platform& getGLPlatform (void) const { return *this; }
+ const vk::Platform& getVulkanPlatform (void) const { return m_vkPlatform; }
+
+private:
+ VulkanPlatform m_vkPlatform;
+};
+
+class ContextFactory : public glu::ContextFactory
+{
+public:
+ ContextFactory (void);
+ glu::RenderContext* createContext (const glu::RenderConfig& config, const tcu::CommandLine& cmdLine) const;
+};
+
+class EglRenderContext : public glu::RenderContext
+{
+public:
+ EglRenderContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine);
+ ~EglRenderContext(void);
+
+ glu::ContextType getType (void) const { return m_contextType; }
+ const glw::Functions& getFunctions (void) const { return m_glFunctions; }
+ const tcu::RenderTarget& getRenderTarget (void) const;
+ void postIterate (void);
+
+private:
+ const eglw::DefaultLibrary m_egl;
+ const glu::ContextType m_contextType;
+ eglw::EGLDisplay m_eglDisplay;
+ eglw::EGLContext m_eglContext;
+ de::DynamicLibrary* m_glLibrary;
+ glw::Functions m_glFunctions;
+ tcu::RenderTarget m_renderTarget;
+};
+
+Platform::Platform(void)
+{
+ m_contextFactoryRegistry.registerFactory(new ContextFactory());
+}
+
+ContextFactory::ContextFactory()
+ : glu::ContextFactory("default", "EGL surfaceless context")
+{}
+
+glu::RenderContext* ContextFactory::createContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine) const
+{
+ return new EglRenderContext(config, cmdLine);
+}
+
+EglRenderContext::EglRenderContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine)
+ : m_egl("libEGL.so")
+ , m_contextType(config.type)
+ , m_eglDisplay(EGL_NO_DISPLAY)
+ , m_eglContext(EGL_NO_CONTEXT)
+ , m_renderTarget(
+ config.width,
+ config.height,
+ tcu::PixelFormat(
+ config.redBits,
+ config.greenBits,
+ config.blueBits,
+ config.alphaBits),
+ config.depthBits,
+ config.stencilBits,
+ config.numSamples)
+
+{
+ vector<eglw::EGLint> context_attribs;
+ vector<eglw::EGLint> frame_buffer_attribs;
+ vector<eglw::EGLint> surface_attribs;
+
+ const glu::ContextType& contextType = config.type;
+ eglw::EGLint eglMajorVersion;
+ eglw::EGLint eglMinorVersion;
+ eglw::EGLint flags = 0;
+ eglw::EGLint num_configs;
+ eglw::EGLConfig egl_config;
+ eglw::EGLSurface egl_surface;
+
+ (void) cmdLine;
+
+ m_eglDisplay = m_egl.getDisplay(NULL);
+ EGLU_CHECK_MSG(m_egl, "eglGetDisplay()");
+ if (m_eglDisplay == EGL_NO_DISPLAY)
+ throw tcu::ResourceError("eglGetDisplay() failed");
+
+ EGLU_CHECK_CALL(m_egl, initialize(m_eglDisplay, &eglMajorVersion, &eglMinorVersion));
+
+ frame_buffer_attribs.push_back(EGL_RENDERABLE_TYPE);
+ switch(contextType.getMajorVersion())
+ {
+ case 3:
+ frame_buffer_attribs.push_back(EGL_OPENGL_ES3_BIT);
+ break;
+ case 2:
+ frame_buffer_attribs.push_back(EGL_OPENGL_ES2_BIT);
+ break;
+ default:
+ frame_buffer_attribs.push_back(EGL_OPENGL_ES_BIT);
+ }
+
+ frame_buffer_attribs.push_back(EGL_SURFACE_TYPE);
+ switch (config.surfaceType)
+ {
+ case glu::RenderConfig::SURFACETYPE_DONT_CARE:
+ frame_buffer_attribs.push_back(EGL_DONT_CARE);
+ break;
+ case glu::RenderConfig::SURFACETYPE_OFFSCREEN_NATIVE:
+ break;
+ case glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC:
+ frame_buffer_attribs.push_back(EGL_PBUFFER_BIT);
+ surface_attribs.push_back(EGL_WIDTH);
+ surface_attribs.push_back(config.width);
+ surface_attribs.push_back(EGL_HEIGHT);
+ surface_attribs.push_back(config.height);
+ break;
+ case glu::RenderConfig::SURFACETYPE_WINDOW:
+ throw tcu::NotSupportedError("surfaceless platform does not support --deqp-surface-type=window");
+ case glu::RenderConfig::SURFACETYPE_LAST:
+ TCU_CHECK_INTERNAL(false);
+ }
+
+ surface_attribs.push_back(EGL_NONE);
+
+ frame_buffer_attribs.push_back(EGL_RED_SIZE);
+ frame_buffer_attribs.push_back(config.redBits);
+
+ frame_buffer_attribs.push_back(EGL_GREEN_SIZE);
+ frame_buffer_attribs.push_back(config.greenBits);
+
+ frame_buffer_attribs.push_back(EGL_BLUE_SIZE);
+ frame_buffer_attribs.push_back(config.blueBits);
+
+ frame_buffer_attribs.push_back(EGL_ALPHA_SIZE);
+ frame_buffer_attribs.push_back(config.alphaBits);
+
+ frame_buffer_attribs.push_back(EGL_DEPTH_SIZE);
+ frame_buffer_attribs.push_back(config.depthBits);
+
+ frame_buffer_attribs.push_back(EGL_STENCIL_SIZE);
+ frame_buffer_attribs.push_back(config.stencilBits);
+
+ frame_buffer_attribs.push_back(EGL_NONE);
+
+ if (!eglChooseConfig(m_eglDisplay, &frame_buffer_attribs[0], NULL, 0, &num_configs))
+ throw tcu::ResourceError("surfaceless couldn't find any config");
+
+ if (!eglChooseConfig(m_eglDisplay, &frame_buffer_attribs[0], &egl_config, 1, &num_configs))
+ throw tcu::ResourceError("surfaceless couldn't find any config");
+
+ switch (config.surfaceType)
+ {
+ case glu::RenderConfig::SURFACETYPE_DONT_CARE:
+ egl_surface = EGL_NO_SURFACE;
+ break;
+ case glu::RenderConfig::SURFACETYPE_OFFSCREEN_GENERIC:
+ egl_surface = eglCreatePbufferSurface(m_eglDisplay, egl_config, &surface_attribs[0]);
+ break;
+ }
+
+ context_attribs.push_back(EGL_CONTEXT_MAJOR_VERSION_KHR);
+ context_attribs.push_back(contextType.getMajorVersion());
+ context_attribs.push_back(EGL_CONTEXT_MINOR_VERSION_KHR);
+ context_attribs.push_back(contextType.getMinorVersion());
+
+ switch (contextType.getProfile())
+ {
+ case glu::PROFILE_ES:
+ EGLU_CHECK_CALL(m_egl, bindAPI(EGL_OPENGL_ES_API));
+ break;
+ case glu::PROFILE_CORE:
+ EGLU_CHECK_CALL(m_egl, bindAPI(EGL_OPENGL_API));
+ context_attribs.push_back(EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR);
+ context_attribs.push_back(EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR);
+ break;
+ case glu::PROFILE_COMPATIBILITY:
+ EGLU_CHECK_CALL(m_egl, bindAPI(EGL_OPENGL_API));
+ context_attribs.push_back(EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR);
+ context_attribs.push_back(EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR);
+ break;
+ case glu::PROFILE_LAST:
+ TCU_CHECK_INTERNAL(false);
+ }
+
+ if ((contextType.getFlags() & glu::CONTEXT_DEBUG) != 0)
+ flags |= EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR;
+
+ if ((contextType.getFlags() & glu::CONTEXT_ROBUST) != 0)
+ flags |= EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR;
+
+ if ((contextType.getFlags() & glu::CONTEXT_FORWARD_COMPATIBLE) != 0)
+ flags |= EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR;
+
+ context_attribs.push_back(EGL_CONTEXT_FLAGS_KHR);
+ context_attribs.push_back(flags);
+
+ context_attribs.push_back(EGL_NONE);
+
+ m_eglContext = m_egl.createContext(m_eglDisplay, egl_config, EGL_NO_CONTEXT, &context_attribs[0]);
+ EGLU_CHECK_MSG(m_egl, "eglCreateContext()");
+ if (!m_eglContext)
+ throw tcu::ResourceError("eglCreateContext failed");
+
+ EGLU_CHECK_CALL(m_egl, makeCurrent(m_eglDisplay, egl_surface, egl_surface, m_eglContext));
+
+ if ((eglMajorVersion == 1 && eglMinorVersion >= 5) ||
+ isEGLExtensionSupported(m_egl, m_eglDisplay, "EGL_KHR_get_all_proc_addresses") ||
+ isEGLExtensionSupported(m_egl, EGL_NO_DISPLAY, "EGL_KHR_client_get_all_proc_addresses"))
+ {
+ // Use eglGetProcAddress() for core functions
+ GetProcFuncLoader funcLoader(m_egl);
+ glu::initCoreFunctions(&m_glFunctions, &funcLoader, contextType.getAPI());
+ }
+#if !defined(DEQP_GLES2_RUNTIME_LOAD)
+ else if (contextType.getAPI() == glu::ApiType::es(2,0))
+ {
+ glw::initES20Direct(&m_glFunctions);
+ }
+#endif
+#if !defined(DEQP_GLES3_RUNTIME_LOAD)
+ else if (contextType.getAPI() == glu::ApiType::es(3,0))
+ {
+ glw::initES30Direct(&m_glFunctions);
+ }
+#endif
+ else
+ {
+ const char* libraryPath = NULL;
+
+ if (glu::isContextTypeES(contextType))
+ {
+ if (contextType.getMinorVersion() <= 2)
+ libraryPath = DEQP_GLES2_LIBRARY_PATH;
+ else
+ libraryPath = DEQP_GLES3_LIBRARY_PATH;
+ }
+ else
+ {
+ libraryPath = DEQP_OPENGL_LIBRARY_PATH;
+ }
+
+ m_glLibrary = new de::DynamicLibrary(libraryPath);
+
+ DynamicFuncLoader funcLoader(m_glLibrary);
+ glu::initCoreFunctions(&m_glFunctions, &funcLoader, contextType.getAPI());
+ }
+
+ {
+ GetProcFuncLoader extLoader(m_egl);
+ glu::initExtensionFunctions(&m_glFunctions, &extLoader, contextType.getAPI());
+ }
+}
+
+EglRenderContext::~EglRenderContext(void)
+{
+ try
+ {
+ if (m_eglDisplay != EGL_NO_DISPLAY)
+ {
+ EGLU_CHECK_CALL(m_egl, makeCurrent(m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT));
+
+ if (m_eglContext != EGL_NO_CONTEXT)
+ EGLU_CHECK_CALL(m_egl, destroyContext(m_eglDisplay, m_eglContext));
+ }
+
+ EGLU_CHECK_CALL(m_egl, terminate(m_eglDisplay));
+ }
+ catch (...)
+ {
+ }
+}
+
+const tcu::RenderTarget& EglRenderContext::getRenderTarget(void) const
+{
+ return m_renderTarget;
+}
+
+void EglRenderContext::postIterate(void)
+{
+ this->getFunctions().finish();
+}
+
+} // namespace surfaceless
+} // namespace tcu
+
+tcu::Platform* createPlatform(void)
+{
+ return new tcu::surfaceless::Platform();
+}
diff --git a/framework/platform/surfaceless/tcuSurfacelessPlatform.hpp b/framework/platform/surfaceless/tcuSurfacelessPlatform.hpp
new file mode 100644
index 0000000..81978a3
--- /dev/null
+++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.hpp
@@ -0,0 +1,34 @@
+#ifndef _TCUSURFACELESSPLATFORM_HPP
+#define _TCUSURFACELESSPLATFORM_HPP
+
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program Tester Core
+ * ----------------------------------------
+ *
+ * Copyright 2015 Intel Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief DRM platform
+ *//*--------------------------------------------------------------------*/
+
+namespace tcu
+{
+ class Platform;
+}
+
+tcu::Platform* createPlatform (void);
+
+#endif // _TCUSURFACELESSPLATFORM_HPP
diff --git a/modules/egl/teglChooseConfigReference.cpp b/modules/egl/teglChooseConfigReference.cpp
index aab0156..8657ee0 100644
--- a/modules/egl/teglChooseConfigReference.cpp
+++ b/modules/egl/teglChooseConfigReference.cpp
@@ -390,6 +390,7 @@
bool isMatch (const SurfaceConfig& config) const
{
+ bool match = true;
for (std::map<EGLenum, AttribRule>::const_iterator iter = m_rules.begin(); iter != m_rules.end(); iter++)
{
const AttribRule rule = iter->second;
@@ -404,21 +405,24 @@
{
const EGLint cfgValue = config.getAttribute(rule.name);
+ if (rule.name == EGL_CONFIG_ID)
+ return (rule.value == cfgValue);
+
switch (rule.criteria)
{
case CRITERIA_EXACT:
if (rule.value != cfgValue)
- return false;
+ match = false;
break;
case CRITERIA_AT_LEAST:
if (rule.value > cfgValue)
- return false;
+ match = false;
break;
case CRITERIA_MASK:
if ((rule.value & cfgValue) != rule.value)
- return false;
+ match = false;
break;
default:
@@ -427,7 +431,7 @@
}
}
- return true;
+ return match;
}
tcu::BVec4 getSpecifiedRGBColors (void) const
diff --git a/modules/egl/teglColorClearCase.cpp b/modules/egl/teglColorClearCase.cpp
index 8ae8b4c..92cbd8f 100644
--- a/modules/egl/teglColorClearCase.cpp
+++ b/modules/egl/teglColorClearCase.cpp
@@ -310,6 +310,7 @@
// Signal completion.
packetIter->signal->increment();
}
+ m_egl.releaseThread();
}
private:
diff --git a/modules/egl/teglGLES2SharedRenderingPerfTests.cpp b/modules/egl/teglGLES2SharedRenderingPerfTests.cpp
index bc13aad..7d334c9 100644
--- a/modules/egl/teglGLES2SharedRenderingPerfTests.cpp
+++ b/modules/egl/teglGLES2SharedRenderingPerfTests.cpp
@@ -717,7 +717,7 @@
class TestThread : de::Thread
{
public:
- TestThread (const vector<TestContext*> contexts);
+ TestThread (const vector<TestContext*> contexts, const Library& egl);
~TestThread (void);
void start (void);
@@ -727,6 +727,7 @@
private:
vector<TestContext*> m_contexts;
+ const Library& m_egl;
bool m_isOk;
string m_errorString;
@@ -746,8 +747,9 @@
TestThread (const TestThread&);
};
-TestThread::TestThread (const vector<TestContext*> contexts)
+TestThread::TestThread (const vector<TestContext*> contexts, const Library& egl)
: m_contexts (contexts)
+ , m_egl (egl)
, m_isOk (false)
, m_errorString ("")
, m_beginTimeUs (0)
@@ -800,6 +802,8 @@
m_isOk = false;
m_errorString = "Got unknown exception";
}
+
+ m_egl.releaseThread();
}
class SharedRenderingPerfCase : public TestCase
@@ -879,7 +883,7 @@
namespace
{
-void createThreads (vector<TestThread*>& threads, int threadCount, int perThreadContextCount, vector<TestContext*>& contexts)
+void createThreads (vector<TestThread*>& threads, int threadCount, int perThreadContextCount, vector<TestContext*>& contexts, const Library& egl)
{
DE_ASSERT(threadCount * perThreadContextCount == (int)contexts.size());
DE_ASSERT(threads.empty());
@@ -891,7 +895,7 @@
for (int contextNdx = 0; contextNdx < perThreadContextCount; contextNdx++)
threadContexts.push_back(contexts[threadNdx * perThreadContextCount + contextNdx]);
- threads.push_back(new TestThread(threadContexts));
+ threads.push_back(new TestThread(threadContexts, egl));
threadContexts.clear();
}
@@ -1036,7 +1040,7 @@
if (m_results.empty())
logTestConfig(m_testCtx.getLog(), m_config);
- createThreads(threads, m_config.threadCount, m_config.perThreadContextCount, m_contexts);
+ createThreads(threads, m_config.threadCount, m_config.perThreadContextCount, m_contexts, m_eglTestCtx.getLibrary());
beginTimeUs = deGetMicroseconds();
diff --git a/modules/egl/teglGetFrameTimestampsTests.cpp b/modules/egl/teglGetFrameTimestampsTests.cpp
index 642262d..5f0a209 100644
--- a/modules/egl/teglGetFrameTimestampsTests.cpp
+++ b/modules/egl/teglGetFrameTimestampsTests.cpp
@@ -194,8 +194,7 @@
bool timestampValid (EGLnsecsANDROID timestamp)
{
- // \todo [2017-10-19 brianderson] Don't consider 0 invalid once kernel fix is in.
- return (timestamp > 0) || (timestamp == EGL_TIMESTAMP_PENDING_ANDROID);
+ return (timestamp >= 0) || (timestamp == EGL_TIMESTAMP_PENDING_ANDROID);
}
bool timestampPending (EGLnsecsANDROID timestamp)
@@ -242,7 +241,7 @@
// be sure that the readsDone time must be after the renderingComplete time.
// It may also be equal to the renderingComplete time if no reads were
// peformed.
- if (verifyReadsDone && timestampValid(frameTimes.readsDone))
+ if (verifyReadsDone)
check_le(result, frameTimes.renderingComplete, frameTimes.readsDone, "Buffer rendering completed after reads completed.");
// Verify CPU/GPU dependencies
diff --git a/modules/egl/teglImageTests.cpp b/modules/egl/teglImageTests.cpp
index aa1b666..fd01af3 100644
--- a/modules/egl/teglImageTests.cpp
+++ b/modules/egl/teglImageTests.cpp
@@ -194,6 +194,15 @@
IterateResult iterate (void)
{
+ const Library& egl = m_eglTestCtx.getLibrary();
+
+ if (eglu::getVersion(egl, m_display) < eglu::Version(1, 5) &&
+ !eglu::hasExtension(egl, m_display, "EGL_KHR_image") &&
+ !eglu::hasExtension(egl, m_display, "EGL_KHR_image_base"))
+ {
+ TCU_THROW(NotSupportedError, "EGLimages not supported");
+ }
+
#define CHECK_CREATE(MSG, DPY, CONTEXT, SOURCE, ERR) checkCreate(MSG, DPY, #DPY, CONTEXT, #CONTEXT, SOURCE, #SOURCE, ERR)
CHECK_CREATE("Testing bad display (-1)...", (EGLDisplay)-1, EGL_NO_CONTEXT, EGL_NONE, EGL_BAD_DISPLAY);
CHECK_CREATE("Testing bad context (-1)...", m_display, (EGLContext)-1, EGL_NONE, EGL_BAD_CONTEXT);
diff --git a/modules/egl/teglMultiThreadTests.cpp b/modules/egl/teglMultiThreadTests.cpp
index 21952a9..9a98245 100644
--- a/modules/egl/teglMultiThreadTests.cpp
+++ b/modules/egl/teglMultiThreadTests.cpp
@@ -110,9 +110,6 @@
THREADSTATUS_NOT_STARTED = 0,
THREADSTATUS_RUNNING,
THREADSTATUS_READY,
-
- THREADSTATUS_NOT_SUPPORTED,
- THREADSTATUS_ERROR
};
TestThread (MultiThreadedTest& test, int id);
@@ -149,18 +146,20 @@
virtual bool runThread (TestThread& thread) = 0;
virtual IterateResult iterate (void);
- bool execTest (TestThread& thread);
+ void execTest (TestThread& thread);
const Library& getLibrary (void) const { return m_eglTestCtx.getLibrary(); }
protected:
- void barrier (TestThread& thread);
+ void barrier (void);
private:
int m_threadCount;
bool m_initialized;
deUint64 m_startTimeUs;
const deUint64 m_timeoutUs;
+ bool m_ok;
+ bool m_supported;
vector<TestThread*> m_threads;
volatile deInt32 m_barrierWaiters;
@@ -189,10 +188,7 @@
try
{
- if (m_test.execTest(*this))
- m_status = THREADSTATUS_READY;
- else
- m_status = THREADSTATUS_ERROR;
+ m_test.execTest(*this);
}
catch (const TestThread::TestStop&)
{
@@ -210,15 +206,17 @@
{
getLog() << ThreadLog::BeginMessage << "Unknown exception" << ThreadLog::EndMessage;
}
+
+ getLibrary().releaseThread();
+ m_status = THREADSTATUS_READY;
}
-bool MultiThreadedTest::execTest (TestThread& thread)
+void MultiThreadedTest::execTest (TestThread& thread)
{
- bool isOk = false;
-
try
{
- isOk = runThread(thread);
+ if (!runThread(thread))
+ m_ok = false;
}
catch (const TestThread::TestStop&)
{
@@ -227,9 +225,7 @@
}
catch (const tcu::NotSupportedError&)
{
- // Set status of each thread
- for (int threadNdx = 0; threadNdx < (int)m_threads.size(); threadNdx++)
- m_threads[threadNdx]->setStatus(TestThread::THREADSTATUS_NOT_SUPPORTED);
+ m_supported = false;
// Release barriers
for (int threadNdx = 0; threadNdx < (int)m_threads.size(); threadNdx++)
@@ -242,9 +238,7 @@
}
catch(...)
{
- // Set status of each thread
- for (int threadNdx = 0; threadNdx < (int)m_threads.size(); threadNdx++)
- m_threads[threadNdx]->setStatus(TestThread::THREADSTATUS_ERROR);
+ m_ok = false;
// Release barriers
for (int threadNdx = 0; threadNdx < (int)m_threads.size(); threadNdx++)
@@ -255,8 +249,6 @@
throw;
}
-
- return isOk;
}
MultiThreadedTest::MultiThreadedTest (EglTestContext& eglTestCtx, const char* name, const char* description, int threadCount, deUint64 timeoutUs)
@@ -265,7 +257,8 @@
, m_initialized (false)
, m_startTimeUs (0)
, m_timeoutUs (timeoutUs)
-
+ , m_ok (true)
+ , m_supported (true)
, m_barrierWaiters (0)
, m_barrierSemaphore1 (0, 0)
, m_barrierSemaphore2 (1, 0)
@@ -295,7 +288,7 @@
}
}
-void MultiThreadedTest::barrier (TestThread& thread)
+void MultiThreadedTest::barrier (void)
{
{
const deInt32 waiters = deAtomicIncrement32(&m_barrierWaiters);
@@ -328,7 +321,7 @@
}
// Barrier was released due an error in other thread
- if (thread.getStatus() != TestThread::THREADSTATUS_RUNNING)
+ if (!m_ok || !m_supported)
throw TestThread::TestStop();
}
@@ -338,6 +331,9 @@
{
m_testCtx.getLog() << tcu::TestLog::Message << "Thread timeout limit: " << m_timeoutUs << "us" << tcu::TestLog::EndMessage;
+ m_ok = true;
+ m_supported = true;
+
// Create threads
m_threads.reserve(m_threadCount);
@@ -366,18 +362,6 @@
for (int threadNdx = 0; threadNdx < (int)m_threads.size(); threadNdx++)
m_threads[threadNdx]->join();
- bool isOk = true;
- bool notSupported = false;
-
- for (int threadNdx = 0; threadNdx < (int)m_threads.size(); threadNdx++)
- {
- if (m_threads[threadNdx]->getStatus() == TestThread::THREADSTATUS_ERROR)
- isOk = false;
-
- if (m_threads[threadNdx]->getStatus() == TestThread::THREADSTATUS_NOT_SUPPORTED)
- notSupported = true;
- }
-
// Get logs
{
vector<int> messageNdx;
@@ -417,9 +401,9 @@
m_threads.clear();
// Set result
- if (isOk)
+ if (m_ok)
{
- if (notSupported)
+ if (!m_supported)
m_testCtx.setTestResult(QP_TEST_RESULT_NOT_SUPPORTED, "Not Supported");
else
m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
@@ -553,7 +537,7 @@
de::Random rnd (deInt32Hash(thread.getId() + 10435));
vector<EGLConfig> configs;
- barrier(thread);
+ barrier();
for (int getConfigsNdx = 0; getConfigsNdx < m_getConfigs; getConfigsNdx++)
{
@@ -942,7 +926,7 @@
TCU_THROW(NotSupportedError, "No usable config found");
}
- barrier(thread);
+ barrier();
// Create / Destroy Objects
if ((m_types & TYPE_SINGLE_WINDOW) != 0 && (m_types & TYPE_PBUFFER) == 0 && (m_types & TYPE_PIXMAP) == 0 && (m_types & TYPE_CONTEXT) == 0)
@@ -957,30 +941,30 @@
if (thread.getId() == 0)
pushObjectsToShared(thread);
- barrier(thread);
+ barrier();
// Push second threads objects to shared
if (thread.getId() == 1)
pushObjectsToShared(thread);
- barrier(thread);
+ barrier();
// Make queries from shared surfaces
querySetSharedObjects(thread, 100);
- barrier(thread);
+ barrier();
// Pull surfaces for first thread from shared surfaces
if (thread.getId() == 0)
pullObjectsFromShared(thread, (int)(m_sharedPbuffers.size()/2), (int)(m_sharedNativePixmaps.size()/2), (int)(m_sharedNativeWindows.size()/2), (int)(m_sharedContexts.size()/2));
- barrier(thread);
+ barrier();
// Pull surfaces for second thread from shared surfaces
if (thread.getId() == 1)
pullObjectsFromShared(thread, (int)m_sharedPbuffers.size(), (int)m_sharedNativePixmaps.size(), (int)m_sharedNativeWindows.size(), (int)m_sharedContexts.size());
- barrier(thread);
+ barrier();
// Create / Destroy Objects
if ((m_types & TYPE_SINGLE_WINDOW) == 0)
diff --git a/modules/egl/teglNegativeApiTests.cpp b/modules/egl/teglNegativeApiTests.cpp
index a33da58..1d7da07 100644
--- a/modules/egl/teglNegativeApiTests.cpp
+++ b/modules/egl/teglNegativeApiTests.cpp
@@ -384,31 +384,55 @@
log << TestLog::EndSection;
- log << TestLog::Section("Test4", "EGL_BAD_CONFIG is generated if OpenGL ES 1.x context is requested and EGL_RENDERABLE_TYPE attribute of config does not contain EGL_OPENGL_ES_BIT");
+ log << TestLog::Section("Test4", "EGL_BAD_CONFIG or EGL_BAD_MATCH is generated if OpenGL ES 1.x context is requested and EGL_RENDERABLE_TYPE attribute of config does not contain EGL_OPENGL_ES_BIT");
if (isAPISupported(EGL_OPENGL_ES_API))
{
EGLConfig notES1Config;
if (getConfig(¬ES1Config, FilterList() << notRenderable<EGL_OPENGL_ES_BIT>))
{
+ // EGL 1.4, EGL 1.5, and EGL_KHR_create_context contain contradictory language about the expected error.
+ Version version = eglu::getVersion(m_eglTestCtx.getLibrary(), display);
+ bool hasKhrCreateContext = eglu::hasExtension(m_eglTestCtx.getLibrary(), display, "EGL_KHR_create_context");
+
expectTrue(eglBindAPI(EGL_OPENGL_ES_API));
expectNoContext(eglCreateContext(display, notES1Config, EGL_NO_CONTEXT, s_es1ContextAttribList));
- expectError(EGL_BAD_CONFIG);
+ if (hasKhrCreateContext)
+ expectEitherError(EGL_BAD_CONFIG, EGL_BAD_MATCH);
+ else
+ {
+ if (version >= eglu::Version(1, 5))
+ expectError(EGL_BAD_MATCH);
+ else
+ expectError(EGL_BAD_CONFIG);
+ }
}
}
log << TestLog::EndSection;
- log << TestLog::Section("Test5", "EGL_BAD_CONFIG is generated if OpenGL ES 2.x context is requested and EGL_RENDERABLE_TYPE attribute of config does not contain EGL_OPENGL_ES2_BIT");
+ log << TestLog::Section("Test5", "EGL_BAD_CONFIG or EGL_BAD_MATCH is generated if OpenGL ES 2.x context is requested and EGL_RENDERABLE_TYPE attribute of config does not contain EGL_OPENGL_ES2_BIT");
if (isAPISupported(EGL_OPENGL_ES_API))
{
EGLConfig notES2Config;
if (getConfig(¬ES2Config, FilterList() << notRenderable<EGL_OPENGL_ES2_BIT>))
{
+ // EGL 1.4, EGL 1.5, and EGL_KHR_create_context contain contradictory language about the expected error.
+ Version version = eglu::getVersion(m_eglTestCtx.getLibrary(), display);
+ bool hasKhrCreateContext = eglu::hasExtension(m_eglTestCtx.getLibrary(), display, "EGL_KHR_create_context");
+
expectTrue(eglBindAPI(EGL_OPENGL_ES_API));
expectNoContext(eglCreateContext(display, notES2Config, EGL_NO_CONTEXT, s_es2ContextAttribList));
- expectError(EGL_BAD_CONFIG);
+ if (hasKhrCreateContext)
+ expectEitherError(EGL_BAD_CONFIG, EGL_BAD_MATCH);
+ else
+ {
+ if (version >= eglu::Version(1, 5))
+ expectError(EGL_BAD_MATCH);
+ else
+ expectError(EGL_BAD_CONFIG);
+ }
}
}
@@ -661,10 +685,10 @@
log << TestLog::EndSection;
- log << TestLog::Section("Test2", "EGL_BAD_CONFIG is generated if config is not an EGL frame buffer configuration");
+ log << TestLog::Section("Test2", "EGL_BAD_CONFIG or EGL_BAD_PARAMETER is generated if config is not an EGL frame buffer configuration or if the PixmapSurface call is not supported");
expectNoSurface(eglCreatePixmapSurface(display, (EGLConfig)-1, DE_NULL, s_emptyAttribList));
- expectError(EGL_BAD_CONFIG);
+ expectEitherError(EGL_BAD_CONFIG, EGL_BAD_PARAMETER);
log << TestLog::EndSection;
});
diff --git a/modules/egl/teglRenderTests.cpp b/modules/egl/teglRenderTests.cpp
index 8b5b5c2..46b1780 100644
--- a/modules/egl/teglRenderTests.cpp
+++ b/modules/egl/teglRenderTests.cpp
@@ -356,6 +356,37 @@
#undef PACK_FMT
}
+/*
+The getColorThreshold function is used to obtain a
+threshold usable for the fuzzyCompare function.
+
+For 8bit color depths a value of 0.02 should provide
+a good metric for rejecting images above this level.
+For other bit depths other thresholds should be selected.
+Ideally this function would take advantage of the
+getColorThreshold function provided by the PixelFormat class
+as this would also allow setting per channel thresholds.
+However using the PixelFormat provided function can result
+in too strict thresholds for 8bit bit depths (compared to
+the current default of 0.02) or too relaxed for lower bit
+depths if scaled proportionally to the 8bit default.
+*/
+
+float getColorThreshold (const tcu::PixelFormat& colorBits)
+{
+ if ((colorBits.redBits > 0 && colorBits.redBits < 8) ||
+ (colorBits.greenBits > 0 && colorBits.greenBits < 8) ||
+ (colorBits.blueBits > 0 && colorBits.blueBits < 8) ||
+ (colorBits.alphaBits > 0 && colorBits.alphaBits < 8))
+ {
+ return 0.05f;
+ }
+ else
+ {
+ return 0.02f;
+ }
+}
+
tcu::TextureFormat getDepthFormat (const int depthBits)
{
switch (depthBits)
@@ -699,9 +730,9 @@
const int numContexts = (int)contexts.size();
const int drawsPerCtx = 2;
const int numIters = 2;
- const float threshold = 0.02f;
-
const tcu::PixelFormat pixelFmt = getPixelFormat(egl, display, config.config);
+ const float threshold = getColorThreshold(pixelFmt);
+
const int depthBits = eglu::getConfigAttribInt(egl, display, config.config, EGL_DEPTH_SIZE);
const int stencilBits = eglu::getConfigAttribInt(egl, display, config.config, EGL_STENCIL_SIZE);
const int numSamples = eglu::getConfigAttribInt(egl, display, config.config, EGL_SAMPLES);
@@ -868,6 +899,7 @@
// Signal completion.
packetIter->signal->increment();
}
+ m_egl.releaseThread();
}
private:
@@ -902,9 +934,9 @@
const int packetsPerThread = 2;
const int numThreads = numContexts;
const int numPackets = numThreads * packetsPerThread;
- const float threshold = 0.02f;
-
const tcu::PixelFormat pixelFmt = getPixelFormat(egl, display, config.config);
+ const float threshold = getColorThreshold(pixelFmt);
+
const int depthBits = eglu::getConfigAttribInt(egl, display, config.config, EGL_DEPTH_SIZE);
const int stencilBits = eglu::getConfigAttribInt(egl, display, config.config, EGL_STENCIL_SIZE);
const int numSamples = eglu::getConfigAttribInt(egl, display, config.config, EGL_SAMPLES);
diff --git a/modules/egl/teglTestPackage.cpp b/modules/egl/teglTestPackage.cpp
index 91e1a4c..fd8b3fa 100644
--- a/modules/egl/teglTestPackage.cpp
+++ b/modules/egl/teglTestPackage.cpp
@@ -144,6 +144,7 @@
addChild(createGetFrameTimestampsTests (m_eglTestCtx));
addChild(createRobustnessTests (m_eglTestCtx));
addChild(createWideColorTests (m_eglTestCtx));
+ addChild(createHdrColorTests (m_eglTestCtx));
}
};
diff --git a/modules/egl/teglThreadCleanUpTests.cpp b/modules/egl/teglThreadCleanUpTests.cpp
index ffe3913..a3f64cb 100644
--- a/modules/egl/teglThreadCleanUpTests.cpp
+++ b/modules/egl/teglThreadCleanUpTests.cpp
@@ -120,6 +120,8 @@
{
m_error = error;
}
+
+ m_egl.releaseThread();
}
private:
diff --git a/modules/egl/teglWideColorTests.cpp b/modules/egl/teglWideColorTests.cpp
index 20d4fff..77d3cfb 100644
--- a/modules/egl/teglWideColorTests.cpp
+++ b/modules/egl/teglWideColorTests.cpp
@@ -107,6 +107,10 @@
void checkFP16Support (void);
void checkSCRGBSupport (void);
void checkSCRGBLinearSupport (void);
+ void checkbt2020linear (void);
+ void checkbt2020pq (void);
+ void checkSMPTE2086 (void);
+ void checkCTA861_3 (void);
protected:
void initEGLSurface (EGLConfig config);
@@ -326,10 +330,42 @@
void WideColorTest::checkSCRGBLinearSupport (void)
{
+ const Library& egl = m_eglTestCtx.getLibrary();
+
+ if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_gl_colorspace_scrgb_linear"))
+ TCU_THROW(NotSupportedError, "EGL_EXT_gl_colorspace_scrgb_linear is not supported");
+}
+
+void WideColorTest::checkbt2020linear (void)
+{
+ const Library& egl = m_eglTestCtx.getLibrary();
+
+ if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_gl_colorspace_bt2020_linear"))
+ TCU_THROW(NotSupportedError, "EGL_EXT_gl_colorspace_bt2020_linear is not supported");
+}
+
+void WideColorTest::checkbt2020pq (void)
+{
+ const Library& egl = m_eglTestCtx.getLibrary();
+
+ if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_gl_colorspace_bt2020_pq"))
+ TCU_THROW(NotSupportedError, "EGL_EXT_gl_colorspace_bt2020_pq is not supported");
+}
+
+void WideColorTest::checkSMPTE2086 (void)
+{
+ const Library& egl = m_eglTestCtx.getLibrary();
+
+ if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_surface_SMPTE2086_metadata"))
+ TCU_THROW(NotSupportedError, "EGL_EXT_surface_SMPTE2086_metadata is not supported");
+}
+
+void WideColorTest::checkCTA861_3 (void)
+{
const Library& egl = m_eglTestCtx.getLibrary();
- if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_gl_colorspace_scrgb_linear"))
- TCU_THROW(NotSupportedError, "EGL_EXT_gl_colorspace_scrgb_linear is not supported");
+ if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_surface_CTA861_3_metadata"))
+ TCU_THROW(NotSupportedError, "EGL_EXT_surface_CTA861_3_metadata is not supported");
}
void WideColorTest::check1010102Support (void)
@@ -406,7 +442,7 @@
if (numConfigs <= 0)
{
log << tcu::TestLog::Message << "No configs returned." << tcu::TestLog::EndMessage;
- TCU_THROW(NotSupportedError, "10:10:10:2 pixel format is not supported");
+ TCU_THROW(NotSupportedError, "16:16:16:16 pixel format is not supported");
}
log << tcu::TestLog::Message << numConfigs << " configs returned" << tcu::TestLog::EndMessage;
@@ -541,6 +577,7 @@
void init (void);
void executeTest (void);
IterateResult iterate (void);
+ void addTestAttributes (const EGLint* attributes);
protected:
void readPixels (const glw::Functions& gl, float* dataPtr);
@@ -559,6 +596,7 @@
private:
std::vector<EGLint> m_attribList;
+ std::vector<EGLint> m_testAttribList;
EGLConfig m_eglConfig;
EGLint m_surfaceType;
EGLint m_componentType;
@@ -594,6 +632,18 @@
m_attribList.push_back(EGL_NONE);
}
+void WideColorSurfaceTest::addTestAttributes(const EGLint *attributes)
+{
+ deUint32 idx = 0;
+ if (attributes == DE_NULL) return;
+
+ while (attributes[idx] != EGL_NONE)
+ {
+ m_testAttribList.push_back(attributes[idx++]);
+ m_testAttribList.push_back(attributes[idx++]);
+ }
+}
+
void WideColorSurfaceTest::init (void)
{
const Library& egl = m_eglTestCtx.getLibrary();
@@ -630,6 +680,12 @@
case EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT:
checkSCRGBLinearSupport();
break;
+ case EGL_GL_COLORSPACE_BT2020_LINEAR_EXT:
+ checkbt2020linear();
+ break;
+ case EGL_GL_COLORSPACE_BT2020_PQ_EXT:
+ checkbt2020pq();
+ break;
default:
break;
}
@@ -1178,6 +1234,36 @@
doClearTest(surface);
+ if (m_testAttribList.size() > 0)
+ {
+ for (deUint32 i = 0; i < m_testAttribList.size(); i +=2)
+ {
+ if (!egl.surfaceAttrib(m_eglDisplay, surface, m_testAttribList[i], m_testAttribList[i+1]))
+ {
+ // Implementation can return EGL_BAD_PARAMETER if given value is not supported.
+ EGLint error = egl.getError();
+ if (error != EGL_BAD_PARAMETER)
+ TCU_FAIL("Unable to set HDR metadata on surface");
+
+ log << tcu::TestLog::Message <<
+ "Warning: Metadata value " << m_testAttribList[i+1] << " for attrib 0x" <<
+ std::hex << m_testAttribList[i] << std::dec <<
+ " not supported by the implementation." << tcu::TestLog::EndMessage;
+ m_testAttribList[i+1] = EGL_BAD_PARAMETER;
+ }
+ }
+ for (deUint32 i = 0; i < m_testAttribList.size(); i +=2)
+ {
+ // Skip unsupported values.
+ if (m_testAttribList[i+1] == EGL_BAD_PARAMETER)
+ continue;
+
+ EGLint value;
+ egl.querySurface(m_eglDisplay, surface, m_testAttribList[i], &value);
+ TCU_CHECK(value == m_testAttribList[i+1]);
+ }
+ }
+
egl.destroySurface(m_eglDisplay, surface);
EGLU_CHECK_MSG(egl, "eglDestroySurface()");
}
@@ -1349,5 +1435,190 @@
return new WideColorTests(eglTestCtx);
}
+class Smpte2086ColorTest : public WideColorTest
+{
+public:
+ Smpte2086ColorTest (EglTestContext& eglTestCtx,
+ const char* name,
+ const char* description);
+
+ void executeTest (void);
+ IterateResult iterate (void);
+};
+
+Smpte2086ColorTest::Smpte2086ColorTest (EglTestContext& eglTestCtx, const char* name, const char* description)
+ : WideColorTest(eglTestCtx, name, description)
+{
+}
+
+#define METADATA_SCALE(x) (static_cast<EGLint>(x * EGL_METADATA_SCALING_EXT))
+
+void Smpte2086ColorTest::executeTest (void)
+{
+ tcu::TestLog& log = m_testCtx.getLog();
+ const Library& egl = m_eglTestCtx.getLibrary();
+ egl.bindAPI(EGL_OPENGL_ES_API);
+
+ log << tcu::TestLog::Message << "Test SMPTE 2086 Metadata on Window" << tcu::TestLog::EndMessage;
+
+ checkSMPTE2086();
+
+ // This is an increment FP16 can do between -1.0 to 1.0
+ const float fp16Increment1 = deFloatPow(2.0, -11.0);
+ // This is an increment FP16 can do between 1.0 to 2.0
+ const float fp16Increment2 = deFloatPow(2.0, -10.0);
+
+ std::vector<Iteration> int8888Iterations;
+ // -0.333251953125f ~ -1/3 as seen in fp16
+ // Negative values will be 0 on read with fixed point pixel formats
+ int8888Iterations.push_back(Iteration(-0.333251953125f, fp16Increment1, 10));
+ // test crossing 0
+ int8888Iterations.push_back(Iteration(-fp16Increment1 * 5.0f, fp16Increment1, 10));
+ // test crossing 1.0
+ // Values > 1.0 will be truncated to 1.0 with fixed point pixel formats
+ int8888Iterations.push_back(Iteration(1.0f - fp16Increment2 * 5.0f, fp16Increment2, 10));
+
+ const EGLint windowAttribList8888[] =
+ {
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_ALPHA_SIZE, 8,
+ EGL_NONE, EGL_NONE
+ };
+
+ WideColorSurfaceTest testObj(m_eglTestCtx, "window_8888_colorspace_default", "8888 window surface, default (sRGB) colorspace", windowAttribList8888, EGL_NONE, int8888Iterations);
+
+ const EGLint testAttrs[] =
+ {
+ EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT, METADATA_SCALE(0.680),
+ EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT, METADATA_SCALE(0.320),
+ EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT, METADATA_SCALE(0.265),
+ EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT, METADATA_SCALE(0.690),
+ EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT, METADATA_SCALE(0.440),
+ EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT, METADATA_SCALE(0.320),
+ EGL_SMPTE2086_WHITE_POINT_X_EXT, METADATA_SCALE(0.2200),
+ EGL_SMPTE2086_WHITE_POINT_Y_EXT, METADATA_SCALE(0.2578),
+ EGL_SMPTE2086_MAX_LUMINANCE_EXT, METADATA_SCALE(1.31),
+ EGL_SMPTE2086_MIN_LUMINANCE_EXT, METADATA_SCALE(0.123),
+ EGL_NONE
+ };
+ testObj.addTestAttributes(testAttrs);
+
+ testObj.init();
+ testObj.executeTest();
+}
+
+TestCase::IterateResult Smpte2086ColorTest::iterate (void)
+{
+ m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
+ executeTest();
+ return STOP;
+}
+
+class Cta8613ColorTest : public WideColorTest
+{
+public:
+ Cta8613ColorTest (EglTestContext& eglTestCtx,
+ const char* name,
+ const char* description);
+
+ void executeTest (void);
+ IterateResult iterate (void);
+};
+
+Cta8613ColorTest::Cta8613ColorTest (EglTestContext& eglTestCtx, const char* name, const char* description)
+ : WideColorTest(eglTestCtx, name, description)
+{
+}
+
+#define METADATA_SCALE(x) (static_cast<EGLint>(x * EGL_METADATA_SCALING_EXT))
+
+void Cta8613ColorTest::executeTest (void)
+{
+ tcu::TestLog& log = m_testCtx.getLog();
+ const Library& egl = m_eglTestCtx.getLibrary();
+ egl.bindAPI(EGL_OPENGL_ES_API);
+
+ log << tcu::TestLog::Message << "Test CTA 861.3 Metadata on Window" << tcu::TestLog::EndMessage;
+
+ checkCTA861_3();
+
+ // This is an increment FP16 can do between -1.0 to 1.0
+ const float fp16Increment1 = deFloatPow(2.0, -11.0);
+ // This is an increment FP16 can do between 1.0 to 2.0
+ const float fp16Increment2 = deFloatPow(2.0, -10.0);
+
+ std::vector<Iteration> int8888Iterations;
+ // -0.333251953125f ~ -1/3 as seen in fp16
+ // Negative values will be 0 on read with fixed point pixel formats
+ int8888Iterations.push_back(Iteration(-0.333251953125f, fp16Increment1, 10));
+ // test crossing 0
+ int8888Iterations.push_back(Iteration(-fp16Increment1 * 5.0f, fp16Increment1, 10));
+ // test crossing 1.0
+ // Values > 1.0 will be truncated to 1.0 with fixed point pixel formats
+ int8888Iterations.push_back(Iteration(1.0f - fp16Increment2 * 5.0f, fp16Increment2, 10));
+
+ const EGLint windowAttribList8888[] =
+ {
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,
+ EGL_ALPHA_SIZE, 8,
+ EGL_NONE, EGL_NONE
+ };
+
+ WideColorSurfaceTest testObj(m_eglTestCtx, "window_8888_colorspace_default", "8888 window surface, default (sRGB) colorspace", windowAttribList8888, EGL_NONE, int8888Iterations);
+
+ const EGLint testAttrs[] =
+ {
+ EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT, METADATA_SCALE(1.31),
+ EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT, METADATA_SCALE(0.6),
+ EGL_NONE
+ };
+ testObj.addTestAttributes(testAttrs);
+
+ testObj.init();
+ testObj.executeTest();
+}
+
+TestCase::IterateResult Cta8613ColorTest::iterate (void)
+{
+ m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
+ executeTest();
+ return STOP;
+}
+
+class HdrColorTests : public TestCaseGroup
+{
+public:
+ HdrColorTests (EglTestContext& eglTestCtx);
+ void init (void);
+
+private:
+ HdrColorTests (const HdrColorTests&);
+ HdrColorTests& operator= (const HdrColorTests&);
+};
+
+HdrColorTests::HdrColorTests (EglTestContext& eglTestCtx)
+ : TestCaseGroup(eglTestCtx, "hdr_metadata", "HDR Metadata tests")
+{
+}
+
+void HdrColorTests::init (void)
+{
+ addChild(new Smpte2086ColorTest(m_eglTestCtx, "smpte2086", "Verify that SMPTE 2086 extension exists"));
+ addChild(new Cta8613ColorTest(m_eglTestCtx, "cta861_3", "Verify that CTA 861.3 extension exists"));
+}
+
+TestCaseGroup* createHdrColorTests (EglTestContext& eglTestCtx)
+{
+ return new HdrColorTests(eglTestCtx);
+}
+
} // egl
} // deqp
diff --git a/modules/egl/teglWideColorTests.hpp b/modules/egl/teglWideColorTests.hpp
index 5f58f58..d663db2 100644
--- a/modules/egl/teglWideColorTests.hpp
+++ b/modules/egl/teglWideColorTests.hpp
@@ -32,6 +32,7 @@
{
TestCaseGroup* createWideColorTests (EglTestContext& eglTestCtx);
+TestCaseGroup* createHdrColorTests (EglTestContext& eglTestCtx);
} // egl
} // deqp
diff --git a/modules/gles2/functional/es2fFlushFinishTests.cpp b/modules/gles2/functional/es2fFlushFinishTests.cpp
index 0c865a3..1a2dbbc 100644
--- a/modules/gles2/functional/es2fFlushFinishTests.cpp
+++ b/modules/gles2/functional/es2fFlushFinishTests.cpp
@@ -413,7 +413,7 @@
}
}
- m_testCtx.setTestResult(allOk ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_FAIL,
+ m_testCtx.setTestResult(allOk ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_COMPATIBILITY_WARNING,
allOk ? "Pass" : "Suspicious performance behavior");
}
diff --git a/modules/gles2/functional/es2fNegativeBufferApiTests.cpp b/modules/gles2/functional/es2fNegativeBufferApiTests.cpp
index 84894f9..4dfcb70 100644
--- a/modules/gles2/functional/es2fNegativeBufferApiTests.cpp
+++ b/modules/gles2/functional/es2fNegativeBufferApiTests.cpp
@@ -393,6 +393,8 @@
expectError(GL_INVALID_ENUM);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, 1, 1);
expectError(GL_INVALID_ENUM);
+ glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, 1, 1);
+ expectError(GL_INVALID_ENUM);
m_log << TestLog::EndSection;
m_log << TestLog::Section("", "GL_INVALID_VALUE is generated if width or height is less than zero.");
diff --git a/modules/gles2/functional/es2fRasterizationTests.cpp b/modules/gles2/functional/es2fRasterizationTests.cpp
index 5f8c1c5..21a439c 100644
--- a/modules/gles2/functional/es2fRasterizationTests.cpp
+++ b/modules/gles2/functional/es2fRasterizationTests.cpp
@@ -101,7 +101,6 @@
float m_pointSize;
float m_lineWidth;
-private:
glu::ShaderProgram* m_shader;
};
@@ -541,6 +540,135 @@
m_testCtx.getLog() << tcu::TestLog::Message << "Point " << (pointNdx+1) << ":\t" << outPoints[pointNdx].position << tcu::TestLog::EndMessage;
}
+class PointSizeClampedTest : public BaseRenderingCase
+{
+public:
+ PointSizeClampedTest (Context& context, const char* name, const char* desc)
+ : BaseRenderingCase (context, name, desc)
+ {
+ }
+
+ IterateResult iterate ()
+ {
+ m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
+ const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+
+ // Tests that point sizes (written to gl_PointSize) are clamped,
+ // before rasterization, to the ALIASED_POINT_SIZE_RANGE
+ // given by the implementation.
+ static const int fboHeight = 4;
+ static const int testAreaWidth = 4;
+ static const int testAreaWidthWithMargin = testAreaWidth + 4;
+ static const float pointRadiusOverage = 8;
+ int fboWidth = 0;
+ int maxPointDiameter = 0;
+ {
+ int maxRenderbufferSize = 0;
+ int maxViewportDims[2] = {};
+ gl.getIntegerv(GL_MAX_RENDERBUFFER_SIZE, &maxRenderbufferSize);
+ gl.getIntegerv(GL_MAX_VIEWPORT_DIMS, maxViewportDims);
+ int maxFboWidth = std::min(maxRenderbufferSize, maxViewportDims[0]);
+
+ float pointSizeRange[2] = {};
+ gl.getFloatv(GL_ALIASED_POINT_SIZE_RANGE, pointSizeRange);
+ m_testCtx.getLog() << tcu::TestLog::Message
+ << "GL_ALIASED_POINT_SIZE_RANGE is [" << pointSizeRange[0] << ", " << pointSizeRange[1] << "]"
+ << tcu::TestLog::EndMessage;
+ // Typically (in the correct case), maxPointDiameter is an odd integer.
+ maxPointDiameter = (int) pointSizeRange[1];
+ // maxPointRadius is inclusive of the center point.
+ int maxPointRadius = (maxPointDiameter + 1) / 2;
+ if (maxPointRadius > maxFboWidth - testAreaWidthWithMargin)
+ {
+ m_testCtx.setTestResult(QP_TEST_RESULT_COMPATIBILITY_WARNING, "max framebuffer size isn't large enough to test max point size");
+ return STOP;
+ }
+ fboWidth = maxPointRadius + testAreaWidthWithMargin;
+ // Round up to the nearest multiple of 2:
+ fboWidth = ((fboWidth + 1) / 2) * 2;
+ }
+ float pointSize = ((float) maxPointDiameter) + pointRadiusOverage * 2;
+ TCU_CHECK(gl.getError() == GL_NO_ERROR);
+
+ m_testCtx.getLog() << tcu::TestLog::Message
+ << "Testing with pointSize = " << pointSize
+ << ", fboWidth = " << fboWidth
+ << tcu::TestLog::EndMessage;
+
+ // Create a framebuffer that is (fboWidth)x(fboHeight), cleared to green:
+ // +---------------------------+
+ // |ggggggggggggggggggggggggggg|
+ // +---------------------------+
+ gl.viewport(0, 0, fboWidth, fboHeight);
+ deUint32 fbo = 0;
+ gl.genFramebuffers(1, &fbo);
+ gl.bindFramebuffer(GL_FRAMEBUFFER, fbo);
+ deUint32 rbo = 0;
+ gl.genRenderbuffers(1, &rbo);
+ gl.bindRenderbuffer(GL_RENDERBUFFER, rbo);
+ gl.renderbufferStorage(GL_RENDERBUFFER, GL_RGBA8, fboWidth, fboHeight);
+ gl.framebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, rbo);
+ if (gl.checkFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
+ {
+ m_testCtx.setTestResult(QP_TEST_RESULT_COMPATIBILITY_WARNING, "couldn't complete a framebuffer suitable to test max point size");
+ return STOP;
+ }
+ gl.clearColor(0.0f, 1.0f, 0.0f, 1.0f);
+ gl.clear(GL_COLOR_BUFFER_BIT);
+ TCU_CHECK(gl.getError() == GL_NO_ERROR);
+
+ // (Framebuffer is still bound.)
+
+ // Draw a red point, with size pointSize, at the far right:
+ // +---------------------------+
+ // |ggggggggRRRRRRRRRRRRRRRRRRR|
+ // +---------------------------+
+ // x point center
+ // ^^^^^^^^^^^^^^^^^^^^^^^^^^^ fboWidth
+ // ^^^^ testAreaWidth = 4 (this is the area that's tested)
+ // ^^^^^^^^ testAreaWidthWithMargin = 8 (extra 4 pixels for tolerance)
+ // ^^^^^^^^^^^^^^^^^^x^^^^^^^^^^^^^^^^^^ maxPointDiameter = 37
+ // ^^^^^^^^ ^^^^^^^^ pointRadiusOverage = 8 * 2
+ // ^^^^^^^^^^^^^^^^^^^^^^^^^^x^^^^^^^^^^^^^^^^^^^^^^^^^^ pointSize = 53
+ // ^^^^^^^^^^^^^^^^^^^ area of resulting draw, if the size is clamped properly = 19
+ {
+ const glw::GLint positionLoc = gl.getAttribLocation(m_shader->getProgram(), "a_position");
+ const glw::GLint colorLoc = gl.getAttribLocation(m_shader->getProgram(), "a_color");
+ const glw::GLint pointSizeLoc = gl.getUniformLocation(m_shader->getProgram(), "u_pointSize");
+ static const float position[] = {1.0f, 0.0f, 0.0f, 1.0f};
+ static const float color[] = {1.0f, 0.0f, 0.0f, 1.0f};
+ gl.useProgram(m_shader->getProgram());
+ gl.enableVertexAttribArray(positionLoc);
+ gl.vertexAttribPointer(positionLoc, 4, GL_FLOAT, GL_FALSE, 0, position);
+ gl.enableVertexAttribArray(colorLoc);
+ gl.vertexAttribPointer(colorLoc, 4, GL_FLOAT, GL_FALSE, 0, color);
+ gl.uniform1f(pointSizeLoc, pointSize);
+ gl.drawArrays(GL_POINTS, 0, 1);
+ gl.disableVertexAttribArray(colorLoc);
+ gl.disableVertexAttribArray(positionLoc);
+ gl.useProgram(0);
+ TCU_CHECK(gl.getError() == GL_NO_ERROR);
+ }
+
+ // And test the resulting draw (the test area should still be green).
+ deUint32 pixels[testAreaWidth * fboHeight] = {};
+ gl.readPixels(0, 0, testAreaWidth, fboHeight, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
+ TCU_CHECK(gl.getError() == GL_NO_ERROR);
+
+ const tcu::RGBA threshold(12, 12, 12, 12);
+ for (deUint32 y = 0; y < fboHeight; ++y)
+ {
+ for (deUint32 x = 0; x < testAreaWidth; ++x)
+ {
+ tcu::RGBA color(pixels[y * testAreaWidth + x]);
+ TCU_CHECK(compareThreshold(color, tcu::RGBA::green(), threshold));
+ }
+ }
+
+ return STOP;
+ }
+};
+
class TrianglesCase : public BaseTriangleCase
{
public:
@@ -1839,6 +1967,15 @@
primitives->addChild(new PointCase (m_context, "points", "Render primitives as GL_POINTS, verify rasterization result", PRIMITIVEWIDENESS_WIDE));
}
+ // .limits
+ {
+ tcu::TestCaseGroup* const limits = new tcu::TestCaseGroup(m_testCtx, "limits", "Primitive width limits");
+
+ addChild(limits);
+
+ limits->addChild(new PointSizeClampedTest(m_context, "points", "gl_PointSize is clamped to ALIASED_POINT_SIZE_RANGE"));
+ }
+
// .fill_rules
{
tcu::TestCaseGroup* const fillRules = new tcu::TestCaseGroup(m_testCtx, "fill_rules", "Primitive fill rules");
diff --git a/modules/gles2/functional/es2fShaderOperatorTests.cpp b/modules/gles2/functional/es2fShaderOperatorTests.cpp
index efe933c..46ef98d 100644
--- a/modules/gles2/functional/es2fShaderOperatorTests.cpp
+++ b/modules/gles2/functional/es2fShaderOperatorTests.cpp
@@ -1523,6 +1523,90 @@
}
}
}
+
+ // Regression tests for sequence operator.
+ // http://khronos.org/registry/webgl/sdk/tests/conformance/glsl/bugs/sequence-operator-evaluation-order.html
+ {
+ class Case : public ShaderRenderCase
+ {
+ static void evalFunc(ShaderEvalContext& c) {
+ c.color = tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f); // green
+ }
+
+ public:
+ Case(Context& context, const char* name, const char* description, const char* fragShaderSource)
+ : ShaderRenderCase(context.getTestContext(), context.getRenderContext(), context.getContextInfo(), name, description, false, &evalFunc)
+ {
+ m_vertShaderSource =
+ "attribute vec4 a_position;\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = a_position;\n"
+ "}\n";
+ m_fragShaderSource = fragShaderSource;
+ }
+ };
+
+ // ESSL 1.00 section 5.9, about sequence operator:
+ // "All expressions are evaluated, in order, from left to right"
+ // Also use a ternary operator where the third operand has side effects to make sure
+ // only the second operand is evaluated.
+ sequenceSideEffGroup->addChild(new Case(m_context, "affect_ternary",
+ "Expression where first operand of a sequence operator has side effects which affect the second operand that is a ternary operator", (
+ "precision mediump float;\n"
+ "bool correct = true;\n"
+ "uniform float u_zero;\n"
+ "float wrong() {\n"
+ " correct = false;\n"
+ " return 0.0;\n"
+ "}\n"
+ "void main() {\n"
+ " float a = u_zero - 0.5; // Result should be -0.5.\n"
+ " float green = (a++, a > 0.0 ? 1.0 : wrong());\n"
+ " gl_FragColor = vec4(0.0, correct ? green : 0.0, 0.0, 1.0);\n"
+ "}\n"
+ )));
+
+ sequenceSideEffGroup->addChild(new Case(m_context, "affect_and",
+ "Expression where first operand of a sequence operator has side effects which affect the second operand that is an and operator", (
+ "precision mediump float;\n"
+ "uniform bool u_false;\n"
+ "bool sideEffectA = false;\n"
+ "bool funcA() {\n"
+ " sideEffectA = true;\n"
+ " return true;\n"
+ "}\n"
+ "bool sideEffectB = false;\n"
+ "bool funcB() {\n"
+ " sideEffectB = true;\n"
+ " return true;\n"
+ "}\n"
+ "void main() {\n"
+ " bool b = (funcA(), u_false == sideEffectA && funcB());\n"
+ " gl_FragColor = (!b && sideEffectA && !sideEffectB) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1);\n"
+ "}\n"
+ )));
+
+ sequenceSideEffGroup->addChild(new Case(m_context, "affect_or",
+ "Expression where first operand of a sequence operator has side effects which affect the second operand that is an or operator", (
+ "precision mediump float;\n"
+ "uniform bool u_false;\n"
+ "bool sideEffectA = false;\n"
+ "bool funcA() {\n"
+ " sideEffectA = true;\n"
+ " return false;\n"
+ "}\n"
+ "bool sideEffectB = false;\n"
+ "bool funcB() {\n"
+ " sideEffectB = true;\n"
+ " return false;\n"
+ "}\n"
+ "void main() {\n"
+ " bool b = (funcA(), (u_false == !sideEffectA) || funcB());\n"
+ " gl_FragColor = (b && sideEffectA && !sideEffectB) ? vec4(0, 1, 0, 1) : vec4(1, 0, 0, 1);\n"
+ "}\n"
+ )));
+ }
}
} // Functional
diff --git a/modules/gles2/functional/es2fShaderStructTests.cpp b/modules/gles2/functional/es2fShaderStructTests.cpp
index 555a154..21d84c5 100644
--- a/modules/gles2/functional/es2fShaderStructTests.cpp
+++ b/modules/gles2/functional/es2fShaderStructTests.cpp
@@ -111,7 +111,7 @@
throw tcu::NotSupportedError("Dynamic loops not supported");
}
- if ((m_flags && FLAG_USES_TEXTURES) && m_isVertexCase)
+ if ((m_flags & FLAG_USES_TEXTURES) && m_isVertexCase)
{
int numTextures = 0;
m_renderCtx.getFunctions().getIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &numTextures);
@@ -1859,6 +1859,58 @@
c.color.xyz() = c.texture2D(TEXTURE_BRICK, c.coords.swizzle(0,1) * 0.25f + 0.5f).swizzle(0,1,2);
});
+ UNIFORM_STRUCT_CASE(sampler_in_function_arg, "Sampler in struct as function arg", FLAG_USES_TEXTURES,
+ LineStream()
+ << "${DECLARATIONS}"
+ << ""
+ << "struct S {"
+ << " sampler2D source;"
+ << "};"
+ << ""
+ << "mediump vec4 fun(S s) {"
+ << " return texture2D(s.source, vec2(0.5));"
+ << "}"
+ << ""
+ << "uniform S s;"
+ << "void main (void)"
+ << "{"
+ << " ${DST} = fun(s);"
+ << " ${ASSIGN_POS}"
+ << "}",
+ {
+ DE_UNREF(constCoords);
+ setUniform(gl, programID, "s.source", 0);
+ },
+ {
+ c.color.xyz() = c.texture2D(TEXTURE_BRICK, tcu::Vec2(0.5f, 0.5f)).swizzle(0,1,2);
+ });
+
+ UNIFORM_STRUCT_CASE(sampler_in_array_function_arg, "Sampler in struct as function arg", FLAG_USES_TEXTURES,
+ LineStream()
+ << "${DECLARATIONS}"
+ << ""
+ << "struct S {"
+ << " sampler2D source;"
+ << "};"
+ << ""
+ << "mediump vec4 fun(S s[2]) {"
+ << " return texture2D(s[0].source, vec2(0.5));"
+ << "}"
+ << ""
+ << "uniform S s[2];"
+ << "void main (void)"
+ << "{"
+ << " ${DST} = fun(s);"
+ << " ${ASSIGN_POS}"
+ << "}",
+ {
+ DE_UNREF(constCoords);
+ setUniform(gl, programID, "s[0].source", 0);
+ },
+ {
+ c.color.xyz() = c.texture2D(TEXTURE_BRICK, tcu::Vec2(0.5f, 0.5f)).swizzle(0,1,2);
+ });
+
UNIFORM_STRUCT_CASE(equal, "Struct equality", 0,
LineStream()
<< "${DECLARATIONS}"
diff --git a/modules/gles2/functional/es2fTextureCompletenessTests.cpp b/modules/gles2/functional/es2fTextureCompletenessTests.cpp
index f83fec6..c81cd94 100644
--- a/modules/gles2/functional/es2fTextureCompletenessTests.cpp
+++ b/modules/gles2/functional/es2fTextureCompletenessTests.cpp
@@ -128,7 +128,7 @@
IterateResult iterate (void);
protected:
- virtual void createTexture (void) = 0;
+ virtual void createTexture (GLuint texture) = 0;
tcu::TestContext& m_testCtx;
glu::RenderContext& m_renderCtx;
@@ -160,12 +160,17 @@
glViewport (offsetX, offsetY, viewportWidth, viewportHeight);
- createTexture ();
+ GLuint texture;
+ glGenTextures(1, &texture);
+ createTexture(texture);
+
renderer.renderQuad (0, &texCoord[0], glu::TextureTestUtil::TEXTURETYPE_2D);
glu::readPixels (m_renderCtx, offsetX, offsetY, renderedFrame.getAccess());
bool isOk = compareToConstantColor(log, "Result", "Image comparison result", renderedFrame, tcu::COMPARE_LOG_RESULT, m_compareColor);
+ glDeleteTextures(1, &texture);
+
m_testCtx.setTestResult(isOk ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_FAIL,
isOk ? "Pass" : "Image comparison failed");
return STOP;
@@ -180,7 +185,7 @@
IterateResult iterate (void);
protected:
- virtual void createTexture (void) = 0;
+ virtual void createTexture (GLuint texture) = 0;
tcu::TestContext& m_testCtx;
glu::RenderContext& m_renderCtx;
@@ -209,7 +214,9 @@
int offsetX = random.getInt(0, de::max(0,m_renderCtx.getRenderTarget().getWidth() - 64));
int offsetY = random.getInt(0, de::max(0,m_renderCtx.getRenderTarget().getHeight() - 64));
- createTexture();
+ GLuint texture;
+ glGenTextures(1, &texture);
+ createTexture(texture);
for (int face = 0; face < tcu::CUBEFACE_LAST; face++)
{
@@ -226,6 +233,8 @@
allFacesOk = false;
}
+ glDeleteTextures(1, &texture);
+
m_testCtx.setTestResult(allFacesOk ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_FAIL,
allFacesOk ? "Pass" : "Image comparison failed");
return STOP;
@@ -239,7 +248,7 @@
Incomplete2DSizeCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size, IVec2 invalidLevelSize, int invalidLevelNdx, const glu::ContextInfo& ctxInfo);
~Incomplete2DSizeCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
int m_invalidLevelNdx;
@@ -257,7 +266,7 @@
{
}
-void Incomplete2DSizeCase::createTexture (void)
+void Incomplete2DSizeCase::createTexture (GLuint texture)
{
static const char* const s_relaxingExtensions[] =
{
@@ -269,8 +278,6 @@
tcu::TextureLevel levelData (fmt);
TestLog& log = m_testCtx.getLog();
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_2D, texture);
@@ -315,7 +322,7 @@
Incomplete2DFormatCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size, deUint32 format, deUint32 invalidFormat, int invalidLevelNdx);
~Incomplete2DFormatCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
int m_invalidLevelNdx;
@@ -333,13 +340,11 @@
{
}
-void Incomplete2DFormatCase::createTexture (void)
+void Incomplete2DFormatCase::createTexture (GLuint texture)
{
tcu::TextureFormat fmt = glu::mapGLTransferFormat(m_format, GL_UNSIGNED_BYTE);
tcu::TextureLevel levelData (fmt);
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_2D, texture);
@@ -372,7 +377,7 @@
Incomplete2DMissingLevelCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size, int missingLevelNdx);
~Incomplete2DMissingLevelCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
int m_missingLevelNdx;
@@ -386,13 +391,11 @@
{
}
-void Incomplete2DMissingLevelCase::createTexture (void)
+void Incomplete2DMissingLevelCase::createTexture (GLuint texture)
{
tcu::TextureFormat fmt = glu::mapGLTransferFormat(GL_RGBA, GL_UNSIGNED_BYTE);
tcu::TextureLevel levelData (fmt);
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_2D, texture);
@@ -425,7 +428,7 @@
Incomplete2DWrapModeCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size, deUint32 wrapT, deUint32 wrapS, const glu::ContextInfo& ctxInfo);
~Incomplete2DWrapModeCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
deUint32 m_wrapT;
@@ -443,14 +446,12 @@
{
}
-void Incomplete2DWrapModeCase::createTexture (void)
+void Incomplete2DWrapModeCase::createTexture (GLuint texture)
{
TestLog& log = m_testCtx.getLog();
tcu::TextureFormat fmt = glu::mapGLTransferFormat(GL_RGBA, GL_UNSIGNED_BYTE);
tcu::TextureLevel levelData (fmt);
- GLuint texture;
- glGenTextures(1, &texture);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glBindTexture(GL_TEXTURE_2D, texture);
@@ -480,7 +481,7 @@
Complete2DExtraLevelCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size);
~Complete2DExtraLevelCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
IVec2 m_size;
@@ -492,13 +493,11 @@
{
}
-void Complete2DExtraLevelCase::createTexture (void)
+void Complete2DExtraLevelCase::createTexture (GLuint texture)
{
tcu::TextureFormat fmt = glu::mapGLTransferFormat(GL_RGBA, GL_UNSIGNED_BYTE);
tcu::TextureLevel levelData (fmt);
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_2D, texture);
@@ -533,7 +532,7 @@
Incomplete2DEmptyObjectCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size);
~Incomplete2DEmptyObjectCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
IVec2 m_size;
@@ -545,10 +544,8 @@
{
}
-void Incomplete2DEmptyObjectCase::createTexture (void)
+void Incomplete2DEmptyObjectCase::createTexture (GLuint texture)
{
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_2D, texture);
@@ -569,7 +566,7 @@
IncompleteCubeSizeCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size, IVec2 invalidLevelSize, int invalidLevelNdx, tcu::CubeFace invalidCubeFace);
~IncompleteCubeSizeCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
int m_invalidLevelNdx;
@@ -596,13 +593,11 @@
{
}
-void IncompleteCubeSizeCase::createTexture (void)
+void IncompleteCubeSizeCase::createTexture (GLuint texture)
{
tcu::TextureFormat fmt = glu::mapGLTransferFormat(GL_RGBA, GL_UNSIGNED_BYTE);
tcu::TextureLevel levelData (fmt);
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_CUBE_MAP, texture);
@@ -641,7 +636,7 @@
IncompleteCubeFormatCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size, deUint32 format, deUint32 invalidFormat, tcu::CubeFace invalidCubeFace);
~IncompleteCubeFormatCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
deUint32 m_format;
@@ -668,13 +663,11 @@
{
}
-void IncompleteCubeFormatCase::createTexture (void)
+void IncompleteCubeFormatCase::createTexture (GLuint texture)
{
tcu::TextureFormat fmt = glu::mapGLTransferFormat(GL_RGBA, GL_UNSIGNED_BYTE);
tcu::TextureLevel levelData (fmt);
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_CUBE_MAP, texture);
@@ -713,7 +706,7 @@
IncompleteCubeMissingLevelCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size, int invalidLevelNdx, tcu::CubeFace invalidCubeFace);
~IncompleteCubeMissingLevelCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
int m_invalidLevelNdx;
@@ -737,13 +730,11 @@
{
}
-void IncompleteCubeMissingLevelCase::createTexture (void)
+void IncompleteCubeMissingLevelCase::createTexture (GLuint texture)
{
tcu::TextureFormat fmt = glu::mapGLTransferFormat(GL_RGBA, GL_UNSIGNED_BYTE);
tcu::TextureLevel levelData (fmt);
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_CUBE_MAP, texture);
@@ -782,7 +773,7 @@
IncompleteCubeWrapModeCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size, deUint32 wrapT, deUint32 wrapS, const glu::ContextInfo& ctxInfo);
~IncompleteCubeWrapModeCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
deUint32 m_wrapT;
@@ -800,14 +791,12 @@
{
}
-void IncompleteCubeWrapModeCase::createTexture (void)
+void IncompleteCubeWrapModeCase::createTexture (GLuint texture)
{
TestLog& log = m_testCtx.getLog();
tcu::TextureFormat fmt = glu::mapGLTransferFormat(GL_RGBA, GL_UNSIGNED_BYTE);
tcu::TextureLevel levelData (fmt);
- GLuint texture;
- glGenTextures(1, &texture);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glBindTexture(GL_TEXTURE_2D, texture);
@@ -838,7 +827,7 @@
CompleteCubeExtraLevelCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size);
~CompleteCubeExtraLevelCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
IVec2 m_size;
@@ -850,13 +839,11 @@
{
}
-void CompleteCubeExtraLevelCase::createTexture (void)
+void CompleteCubeExtraLevelCase::createTexture (GLuint texture)
{
tcu::TextureFormat fmt = glu::mapGLTransferFormat(GL_RGBA, GL_UNSIGNED_BYTE);
tcu::TextureLevel levelData (fmt);
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_2D, texture);
@@ -894,7 +881,7 @@
IncompleteCubeEmptyObjectCase (tcu::TestContext& testCtx, glu::RenderContext& renderCtx, const char* name, const char* description, IVec2 size);
~IncompleteCubeEmptyObjectCase (void) {}
- virtual void createTexture (void);
+ virtual void createTexture (GLuint texture);
private:
IVec2 m_size;
@@ -906,10 +893,8 @@
{
}
-void IncompleteCubeEmptyObjectCase::createTexture (void)
+void IncompleteCubeEmptyObjectCase::createTexture (GLuint texture)
{
- GLuint texture;
- glGenTextures (1, &texture);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glBindTexture (GL_TEXTURE_2D, texture);
diff --git a/modules/gles2/functional/es2fTextureSizeTests.cpp b/modules/gles2/functional/es2fTextureSizeTests.cpp
index 4e2988f..f7627b9 100644
--- a/modules/gles2/functional/es2fTextureSizeTests.cpp
+++ b/modules/gles2/functional/es2fTextureSizeTests.cpp
@@ -122,7 +122,10 @@
RandomViewport viewport (m_renderCtx.getRenderTarget(), 128, 128, deStringHash(getName()));
tcu::Surface renderedFrame (viewport.width, viewport.height);
tcu::Surface referenceFrame (viewport.width, viewport.height);
- tcu::RGBA threshold = m_renderCtx.getRenderTarget().getPixelFormat().getColorThreshold() + tcu::RGBA(7,7,7,7);
+ const tcu::IVec4 texBits = tcu::getTextureFormatBitDepth(glu::mapGLTransferFormat(m_format, m_dataType));
+ const tcu::PixelFormat& rtFmt = m_renderCtx.getRenderTarget().getPixelFormat();
+ const tcu::PixelFormat thresholdFormat(std::min(texBits[0], rtFmt.redBits), std::min(texBits[1], rtFmt.greenBits), std::min(texBits[2], rtFmt.blueBits), std::min(texBits[3], rtFmt.alphaBits));
+ tcu::RGBA threshold = thresholdFormat.getColorThreshold() + tcu::RGBA(7,7,7,7);
deUint32 wrapS = GL_CLAMP_TO_EDGE;
deUint32 wrapT = GL_CLAMP_TO_EDGE;
deUint32 minFilter = m_useMipmaps ? GL_NEAREST_MIPMAP_NEAREST : GL_NEAREST;
@@ -265,7 +268,10 @@
RandomViewport viewport (m_renderCtx.getRenderTarget(), 128, 128, deStringHash(getName())+(deUint32)face);
tcu::Surface renderedFrame (viewport.width, viewport.height);
tcu::Surface referenceFrame (viewport.width, viewport.height);
- tcu::RGBA threshold = m_renderCtx.getRenderTarget().getPixelFormat().getColorThreshold() + tcu::RGBA(7,7,7,7);
+ const tcu::IVec4 texBits = tcu::getTextureFormatBitDepth(glu::mapGLTransferFormat(m_format, m_dataType));
+ const tcu::PixelFormat& rtFmt = m_renderCtx.getRenderTarget().getPixelFormat();
+ const tcu::PixelFormat thresholdFormat(std::min(texBits[0], rtFmt.redBits), std::min(texBits[1], rtFmt.greenBits), std::min(texBits[2], rtFmt.blueBits), std::min(texBits[3], rtFmt.alphaBits));
+ tcu::RGBA threshold = thresholdFormat.getColorThreshold() + tcu::RGBA(7,7,7,7);
deUint32 wrapS = GL_CLAMP_TO_EDGE;
deUint32 wrapT = GL_CLAMP_TO_EDGE;
deUint32 minFilter = m_useMipmaps ? GL_NEAREST_MIPMAP_NEAREST : GL_NEAREST;
diff --git a/modules/gles3/functional/CMakeLists.txt b/modules/gles3/functional/CMakeLists.txt
index 1adc70e..be74b19 100644
--- a/modules/gles3/functional/CMakeLists.txt
+++ b/modules/gles3/functional/CMakeLists.txt
@@ -53,6 +53,8 @@
es3fFunctionalTests.hpp
es3fLifetimeTests.cpp
es3fLifetimeTests.hpp
+ es3fMultiviewTests.cpp
+ es3fMultiviewTests.hpp
es3fPrerequisiteTests.cpp
es3fPrerequisiteTests.hpp
es3fRasterizationTests.cpp
diff --git a/modules/gles3/functional/es3fFboMultisampleTests.cpp b/modules/gles3/functional/es3fFboMultisampleTests.cpp
index c29cdb8..c013a54 100644
--- a/modules/gles3/functional/es3fFboMultisampleTests.cpp
+++ b/modules/gles3/functional/es3fFboMultisampleTests.cpp
@@ -21,6 +21,7 @@
* \brief FBO multisample tests.
*//*--------------------------------------------------------------------*/
+#include "es3fApiCase.hpp"
#include "es3fFboMultisampleTests.hpp"
#include "es3fFboTestCase.hpp"
#include "es3fFboTestUtil.hpp"
@@ -246,6 +247,98 @@
int m_numSamples;
};
+// Ported from WebGL [1], originally written to test a Qualcomm driver bug [2].
+// [1] https://github.com/KhronosGroup/WebGL/blob/master/sdk/tests/conformance2/renderbuffers/multisampled-renderbuffer-initialization.html
+// [2] http://crbug.com/696126
+class RenderbufferResizeCase : public ApiCase
+{
+public:
+ RenderbufferResizeCase (Context& context, const char* name, const char* desc, bool multisampled1, bool multisampled2)
+ : ApiCase (context, name, desc)
+ , m_multisampled1(multisampled1)
+ , m_multisampled2(multisampled2)
+ {
+ }
+
+protected:
+ void test ()
+ {
+ glDisable(GL_DEPTH_TEST);
+
+ int maxSamples = 0;
+ glGetInternalformativ(GL_RENDERBUFFER, GL_RGBA8, GL_SAMPLES, 1, &maxSamples);
+ deUint32 samp1 = m_multisampled1 ? maxSamples : 0;
+ deUint32 samp2 = m_multisampled2 ? maxSamples : 0;
+
+ static const deUint32 W1 = 10, H1 = 10;
+ static const deUint32 W2 = 40, H2 = 40;
+
+ // Set up non-multisampled buffer to blit to and read back from.
+ deUint32 fboResolve = 0;
+ deUint32 rboResolve = 0;
+ {
+ glGenFramebuffers(1, &fboResolve);
+ glBindFramebuffer(GL_FRAMEBUFFER, fboResolve);
+ glGenRenderbuffers(1, &rboResolve);
+ glBindRenderbuffer(GL_RENDERBUFFER, rboResolve);
+ glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8, W2, H2);
+ glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, rboResolve);
+ TCU_CHECK(glCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE);
+ glClearBufferfv(GL_COLOR, 0, Vec4(1.0f, 0.0f, 0.0f, 1.0f).getPtr());
+ }
+ expectError(GL_NO_ERROR);
+
+ // Set up multisampled buffer to test.
+ deUint32 fboMultisampled = 0;
+ deUint32 rboMultisampled = 0;
+ {
+ glGenFramebuffers(1, &fboMultisampled);
+ glBindFramebuffer(GL_FRAMEBUFFER, fboMultisampled);
+ glGenRenderbuffers(1, &rboMultisampled);
+ glBindRenderbuffer(GL_RENDERBUFFER, rboMultisampled);
+ // Allocate,
+ glRenderbufferStorageMultisample(GL_RENDERBUFFER, samp1, GL_RGBA8, W1, H1);
+ // attach,
+ glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, rboMultisampled);
+ TCU_CHECK(glCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE);
+ glClearBufferfv(GL_COLOR, 0, Vec4(0.0f, 0.0f, 1.0f, 1.0f).getPtr());
+ // and allocate again with different parameters.
+ glRenderbufferStorageMultisample(GL_RENDERBUFFER, samp2, GL_RGBA8, W2, H2);
+ TCU_CHECK(glCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE);
+ glClearBufferfv(GL_COLOR, 0, Vec4(0.0f, 1.0f, 0.0f, 1.0f).getPtr());
+ }
+ expectError(GL_NO_ERROR);
+
+ // This is a blit from the multisampled buffer to the non-multisampled buffer.
+ glBindFramebuffer(GL_READ_FRAMEBUFFER, fboMultisampled);
+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fboResolve);
+ // Blit color from fboMultisampled (should be green) to fboResolve (should currently be red).
+ glBlitFramebuffer(0, 0, W2, H2, 0, 0, W2, H2, GL_COLOR_BUFFER_BIT, GL_NEAREST);
+ glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
+ expectError(GL_NO_ERROR);
+
+ // fboResolve should now be green.
+ glBindFramebuffer(GL_READ_FRAMEBUFFER, fboResolve);
+ deUint32 pixels[W2 * H2] = {};
+ glReadPixels(0, 0, W2, H2, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
+ expectError(GL_NO_ERROR);
+
+ const tcu::RGBA threshold (tcu::max(getFormatThreshold(GL_RGBA8), tcu::RGBA(12, 12, 12, 12)));
+ for (deUint32 y = 0; y < H2; ++y)
+ {
+ for (deUint32 x = 0; x < W2; ++x)
+ {
+ tcu::RGBA color(pixels[y * W2 + x]);
+ TCU_CHECK(compareThreshold(color, tcu::RGBA::green(), threshold));
+ }
+ }
+ }
+
+private:
+ bool m_multisampled1;
+ bool m_multisampled2;
+};
+
FboMultisampleTests::FboMultisampleTests (Context& context)
: TestCaseGroup(context, "msaa", "Multisample FBO tests")
{
@@ -312,6 +405,19 @@
for (int fmtNdx = 0; fmtNdx < DE_LENGTH_OF_ARRAY(depthStencilFormats); fmtNdx++)
sampleCountGroup->addChild(new BasicFboMultisampleCase(m_context, getFormatName(depthStencilFormats[fmtNdx]), "", GL_RGBA8, depthStencilFormats[fmtNdx], IVec2(119, 131), samples));
}
+
+ // .renderbuffer_resize
+ {
+ tcu::TestCaseGroup* group = new tcu::TestCaseGroup(m_testCtx, "renderbuffer_resize", "Multisample renderbuffer resize");
+ addChild(group);
+
+ {
+ group->addChild(new RenderbufferResizeCase(m_context, "nonms_to_nonms", "", false, false));
+ group->addChild(new RenderbufferResizeCase(m_context, "nonms_to_ms", "", false, true));
+ group->addChild(new RenderbufferResizeCase(m_context, "ms_to_nonms", "", true, false));
+ group->addChild(new RenderbufferResizeCase(m_context, "ms_to_ms", "", true, true));
+ }
+ }
}
} // Functional
diff --git a/modules/gles3/functional/es3fFlushFinishTests.cpp b/modules/gles3/functional/es3fFlushFinishTests.cpp
index 05802a1..3c822ea 100644
--- a/modules/gles3/functional/es3fFlushFinishTests.cpp
+++ b/modules/gles3/functional/es3fFlushFinishTests.cpp
@@ -33,6 +33,7 @@
#include "tcuTestLog.hpp"
#include "tcuRenderTarget.hpp"
#include "tcuCPUWarmup.hpp"
+#include "tcuApp.hpp"
#include "glwEnums.hpp"
#include "glwFunctions.hpp"
@@ -66,6 +67,7 @@
{
MAX_VIEWPORT_SIZE = 256,
MAX_SAMPLE_DURATION_US = 150*1000,
+ MAX_CALIBRATE_DURATION_US = tcu::WATCHDOG_INTERVAL_TIME_LIMIT_SECS/3*1000*1000, // Abort when the watch dog gets nervous
WAIT_TIME_MS = 200,
MIN_DRAW_CALL_COUNT = 10,
MAX_DRAW_CALL_COUNT = 1<<20,
@@ -291,6 +293,8 @@
tcu::ScopedLogSection section (m_testCtx.getLog(), "CalibrationInfo", "Calibration info");
CalibrationParams params;
+ const deUint64 calibrateStartTime = deGetMicroseconds();
+
// Step 1: find iteration count that results in rougly 1/10th of target maximum sample duration.
{
const deUint64 targetDurationUs = MAX_SAMPLE_DURATION_US/100;
@@ -302,6 +306,7 @@
for (;;)
{
+ deUint64 endTime;
deUint64 curDuration;
setShaderIterCount(curIterCount);
@@ -310,7 +315,8 @@
{
const deUint64 startTime = deGetMicroseconds();
readPixels();
- curDuration = deGetMicroseconds()-startTime;
+ endTime = deGetMicroseconds();
+ curDuration = endTime-startTime;
}
m_testCtx.getLog() << TestLog::Message << "Duration with " << curIterCount << " iterations = " << curDuration << " us" << TestLog::EndMessage;
@@ -332,6 +338,11 @@
}
else if (curIterCount >= MAX_SHADER_ITER_COUNT)
break; // Settle on maximum.
+ else if (endTime - calibrateStartTime > MAX_CALIBRATE_DURATION_US)
+ {
+ // Calibration is taking longer than expected. This can be due to eager draw call execution.
+ throw CalibrationFailedException("Calibration failed, target duration not reached within expected time");
+ }
else
{
prevIterCount = curIterCount;
@@ -357,6 +368,7 @@
for (;;)
{
+ deUint64 endTime;
deUint64 curDuration;
render(curDrawCount); // \note Submit time is ignored
@@ -364,7 +376,8 @@
{
const deUint64 startTime = deGetMicroseconds();
readPixels();
- curDuration = deGetMicroseconds()-startTime;
+ endTime = deGetMicroseconds();
+ curDuration = endTime-startTime;
}
m_testCtx.getLog() << TestLog::Message << "Duration with " << curDrawCount << " draw calls = " << curDuration << " us" << TestLog::EndMessage;
@@ -386,6 +399,11 @@
}
else if (curDrawCount >= MAX_DRAW_CALL_COUNT)
break; // Settle on maximum.
+ else if (endTime - calibrateStartTime > MAX_CALIBRATE_DURATION_US)
+ {
+ // Calibration is taking longer than expected. This can be due to eager draw call execution.
+ throw CalibrationFailedException("Calibration failed, target duration not reached within expected time");
+ }
else
{
prevDrawCount = curDrawCount;
@@ -522,7 +540,7 @@
}
}
- m_testCtx.setTestResult(allOk ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_FAIL,
+ m_testCtx.setTestResult(allOk ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_COMPATIBILITY_WARNING,
allOk ? "Pass" : "Suspicious performance behavior");
}
diff --git a/modules/gles3/functional/es3fFunctionalTests.cpp b/modules/gles3/functional/es3fFunctionalTests.cpp
index 5a57831..1e352da 100644
--- a/modules/gles3/functional/es3fFunctionalTests.cpp
+++ b/modules/gles3/functional/es3fFunctionalTests.cpp
@@ -47,6 +47,7 @@
#include "es3fBlendTests.hpp"
#include "es3fRandomFragmentOpTests.hpp"
#include "es3fMultisampleTests.hpp"
+#include "es3fMultiviewTests.hpp"
#include "es3fImplementationLimitTests.hpp"
#include "es3fDitheringTests.hpp"
#include "es3fClippingTests.hpp"
@@ -272,6 +273,7 @@
addChild(new FboStencilTests (m_context));
addChild(new FramebufferBlitTests (m_context));
addChild(new FboMultisampleTests (m_context));
+ addChild(new MultiviewTests (m_context));
addChild(new FboInvalidateTests (m_context));
}
};
diff --git a/modules/gles3/functional/es3fMultiviewTests.cpp b/modules/gles3/functional/es3fMultiviewTests.cpp
new file mode 100644
index 0000000..7f88926
--- /dev/null
+++ b/modules/gles3/functional/es3fMultiviewTests.cpp
@@ -0,0 +1,361 @@
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES 3.0 Module
+ * -------------------------------------------------
+ *
+ * Copyright 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ /*!
+ * \file
+ * \brief Multiview tests.
+ * Tests functionality provided by the three multiview extensions.
+ * Note that this file is formatted using external/openglcts/.clang-format
+ */ /*--------------------------------------------------------------------*/
+
+#include "es3fMultiviewTests.hpp"
+
+#include "deString.h"
+#include "deStringUtil.hpp"
+#include "gluContextInfo.hpp"
+#include "gluPixelTransfer.hpp"
+#include "gluShaderProgram.hpp"
+#include "glw.h"
+#include "glwEnums.hpp"
+#include "glwFunctions.hpp"
+#include "tcuRenderTarget.hpp"
+#include "tcuSurface.hpp"
+#include "tcuTestLog.hpp"
+#include "tcuVector.hpp"
+
+using tcu::TestLog;
+using tcu::Vec4;
+
+namespace deqp
+{
+namespace gles3
+{
+namespace Functional
+{
+
+static const int NUM_CASE_ITERATIONS = 1;
+static const float UNIT_SQUARE[16] = {
+ 1.0f, 1.0f, 0.05f, 1.0f, // Vertex 0
+ 1.0f, -1.0f, 0.05f, 1.0f, // Vertex 1
+ -1.0f, 1.0f, 0.05f, 1.0f, // Vertex 2
+ -1.0f, -1.0f, 0.05f, 1.0f // Vertex 3
+};
+static const float COLOR_VALUES[] = {
+ 1, 0, 0, 1, // Red for level 0
+ 0, 1, 0, 1, // Green for level 1
+};
+
+class MultiviewCase : public TestCase
+{
+public:
+ MultiviewCase(Context& context, const char* name, const char* description, int numSamples);
+ ~MultiviewCase();
+ void init();
+ void deinit();
+ IterateResult iterate();
+
+private:
+ MultiviewCase(const MultiviewCase& other);
+ MultiviewCase& operator=(const MultiviewCase& other);
+ void setupFramebufferObjects();
+ void deleteFramebufferObjects();
+
+ glu::ShaderProgram* m_multiviewProgram;
+ deUint32 m_multiviewFbo;
+ deUint32 m_arrayTexture;
+
+ glu::ShaderProgram* m_finalProgram;
+
+ int m_caseIndex;
+ const int m_numSamples;
+ const int m_width;
+ const int m_height;
+};
+
+MultiviewCase::MultiviewCase(Context& context, const char* name, const char* description, int numSamples)
+ : TestCase(context, name, description)
+ , m_multiviewProgram(DE_NULL)
+ , m_multiviewFbo(0)
+ , m_arrayTexture(0)
+ , m_finalProgram(DE_NULL)
+ , m_caseIndex(0)
+ , m_numSamples(numSamples)
+ , m_width(512)
+ , m_height(512)
+{
+}
+
+MultiviewCase::~MultiviewCase()
+{
+ MultiviewCase::deinit();
+}
+
+void MultiviewCase::setupFramebufferObjects()
+{
+ const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+
+ // First create the array texture and multiview FBO.
+
+ gl.genTextures(1, &m_arrayTexture);
+ gl.bindTexture(GL_TEXTURE_2D_ARRAY, m_arrayTexture);
+ gl.texStorage3D(GL_TEXTURE_2D_ARRAY, 1 /* num mipmaps */, GL_RGBA8, m_width / 2, m_height, 2 /* num levels */);
+ gl.texParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ gl.texParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ GLU_EXPECT_NO_ERROR(gl.getError(), "Create array texture");
+
+ gl.genFramebuffers(1, &m_multiviewFbo);
+ gl.bindFramebuffer(GL_FRAMEBUFFER, m_multiviewFbo);
+ if (m_numSamples == 1)
+ {
+ gl.framebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, m_arrayTexture, 0 /* mip level */,
+ 0 /* base view index */, 2 /* num views */);
+ }
+ else
+ {
+ gl.framebufferTextureMultisampleMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, m_arrayTexture,
+ 0 /* mip level */, m_numSamples /* samples */,
+ 0 /* base view index */, 2 /* num views */);
+ }
+ GLU_EXPECT_NO_ERROR(gl.getError(), "Create multiview FBO");
+ deUint32 fboStatus = glCheckFramebufferStatus(GL_FRAMEBUFFER);
+ if (fboStatus == GL_FRAMEBUFFER_UNSUPPORTED)
+ {
+ throw tcu::NotSupportedError("Framebuffer unsupported", "", __FILE__, __LINE__);
+ }
+ else if (fboStatus != GL_FRAMEBUFFER_COMPLETE)
+ {
+ throw tcu::TestError("Failed to create framebuffer object", "", __FILE__, __LINE__);
+ }
+}
+
+void MultiviewCase::deleteFramebufferObjects()
+{
+ const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+ gl.deleteTextures(1, &m_arrayTexture);
+ gl.deleteFramebuffers(1, &m_multiviewFbo);
+}
+
+void MultiviewCase::init()
+{
+ const glu::ContextInfo& contextInfo = m_context.getContextInfo();
+ bool mvsupported = contextInfo.isExtensionSupported("GL_OVR_multiview");
+ if (!mvsupported)
+ {
+ TCU_THROW(NotSupportedError, "Multiview is not supported");
+ }
+
+ if (m_numSamples > 1)
+ {
+ bool msaasupported = contextInfo.isExtensionSupported("GL_OVR_multiview_multisampled_render_to_texture");
+ if (!msaasupported)
+ {
+ TCU_THROW(NotSupportedError, "Implicit MSAA multiview is not supported");
+ }
+ }
+
+ const char* multiviewVertexShader = "#version 300 es\n"
+ "#extension GL_OVR_multiview : enable\n"
+ "layout(num_views=2) in;\n"
+ "layout(location = 0) in mediump vec4 a_position;\n"
+ "uniform mediump vec4 uColor[2];\n"
+ "out mediump vec4 vColor;\n"
+ "void main() {\n"
+ " vColor = uColor[gl_ViewID_OVR];\n"
+ " gl_Position = a_position;\n"
+ "}\n";
+
+ const char* multiviewFragmentShader = "#version 300 es\n"
+ "layout(location = 0) out mediump vec4 dEQP_FragColor;\n"
+ "in mediump vec4 vColor;\n"
+ "void main() {\n"
+ " dEQP_FragColor = vColor;\n"
+ "}\n";
+
+ m_multiviewProgram = new glu::ShaderProgram(
+ m_context.getRenderContext(), glu::makeVtxFragSources(multiviewVertexShader, multiviewFragmentShader));
+ DE_ASSERT(m_multiviewProgram);
+ if (!m_multiviewProgram->isOk())
+ {
+ m_testCtx.getLog() << *m_multiviewProgram;
+ TCU_FAIL("Failed to compile multiview shader");
+ }
+
+ // Draw the first layer on the left half of the screen and the second layer
+ // on the right half.
+ const char* finalVertexShader = "#version 300 es\n"
+ "layout(location = 0) in mediump vec4 a_position;\n"
+ "out highp vec3 vTexCoord;\n"
+ "void main() {\n"
+ " vTexCoord.x = fract(a_position.x + 1.0);\n"
+ " vTexCoord.y = .5 * (a_position.y + 1.0);\n"
+ " vTexCoord.z = a_position.x;\n"
+ " gl_Position = a_position;\n"
+ "}\n";
+
+ const char* finalFragmentShader = "#version 300 es\n"
+ "layout(location = 0) out mediump vec4 dEQP_FragColor;\n"
+ "uniform lowp sampler2DArray uArrayTexture;\n"
+ "in highp vec3 vTexCoord;\n"
+ "void main() {\n"
+ " highp vec3 uvw = vTexCoord;\n"
+ " uvw.z = floor(vTexCoord.z + 1.0);\n"
+ " dEQP_FragColor = texture(uArrayTexture, uvw);\n"
+ "}\n";
+
+ m_finalProgram = new glu::ShaderProgram(m_context.getRenderContext(),
+ glu::makeVtxFragSources(finalVertexShader, finalFragmentShader));
+ DE_ASSERT(m_finalProgram);
+ if (!m_finalProgram->isOk())
+ {
+ m_testCtx.getLog() << *m_finalProgram;
+ TCU_FAIL("Failed to compile final shader");
+ }
+
+ m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
+ GLU_CHECK_MSG("Case initialization finished");
+}
+
+void MultiviewCase::deinit()
+{
+ deleteFramebufferObjects();
+ delete m_multiviewProgram;
+ m_multiviewProgram = DE_NULL;
+ delete m_finalProgram;
+ m_finalProgram = DE_NULL;
+}
+
+MultiviewCase::IterateResult MultiviewCase::iterate()
+{
+ TestLog& log = m_testCtx.getLog();
+ deUint32 colorUniform = glGetUniformLocation(m_multiviewProgram->getProgram(), "uColor");
+ std::string header = "Case iteration " + de::toString(m_caseIndex + 1) + " / " + de::toString(NUM_CASE_ITERATIONS);
+ log << TestLog::Section(header, header);
+
+ DE_ASSERT(m_multiviewProgram);
+
+ // Create and bind the multiview FBO.
+
+ try
+ {
+ setupFramebufferObjects();
+ }
+ catch (tcu::NotSupportedError& e)
+ {
+ log << TestLog::Message << "ERROR: " << e.what() << "." << TestLog::EndMessage << TestLog::EndSection;
+ m_testCtx.setTestResult(QP_TEST_RESULT_NOT_SUPPORTED, "Not supported");
+ return STOP;
+ }
+ catch (tcu::InternalError& e)
+ {
+ log << TestLog::Message << "ERROR: " << e.what() << "." << TestLog::EndMessage << TestLog::EndSection;
+ m_testCtx.setTestResult(QP_TEST_RESULT_INTERNAL_ERROR, "Error");
+ return STOP;
+ }
+
+ log << TestLog::EndSection;
+
+ // Draw full screen quad into the multiview framebuffer.
+ // The quad should be instanced into both layers of the array texture.
+
+ const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+ gl.bindFramebuffer(GL_FRAMEBUFFER, m_multiviewFbo);
+ gl.viewport(0, 0, m_width / 2, m_height);
+ gl.useProgram(m_multiviewProgram->getProgram());
+ gl.uniform4fv(colorUniform, 2, COLOR_VALUES);
+ gl.enableVertexAttribArray(0);
+ gl.vertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, &UNIT_SQUARE[0]);
+ gl.drawArrays(GL_TRIANGLE_STRIP, 0, 4);
+
+ // Sample from the array texture to draw a quad into the backbuffer.
+
+ const int backbufferWidth = m_context.getRenderTarget().getWidth();
+ const int backbufferHeight = m_context.getRenderTarget().getHeight();
+ gl.bindFramebuffer(GL_FRAMEBUFFER, 0);
+ gl.viewport(0, 0, backbufferWidth, backbufferHeight);
+ gl.useProgram(m_finalProgram->getProgram());
+ gl.bindTexture(GL_TEXTURE_2D_ARRAY, m_arrayTexture);
+ gl.drawArrays(GL_TRIANGLE_STRIP, 0, 4);
+
+ // Read back the framebuffer, ensure that the left half is red and the
+ // right half is green.
+
+ tcu::Surface pixels(backbufferWidth, backbufferHeight);
+ glu::readPixels(m_context.getRenderContext(), 0, 0, pixels.getAccess());
+ bool failed = false;
+ for (int y = 0; y < backbufferHeight; y++)
+ {
+ for (int x = 0; x < backbufferWidth; x++)
+ {
+ tcu::RGBA pixel = pixels.getPixel(x, y);
+ if (x < backbufferWidth / 2)
+ {
+ if (pixel.getRed() != 255 || pixel.getGreen() != 0 || pixel.getBlue() != 0)
+ {
+ failed = true;
+ }
+ }
+ else
+ {
+ if (pixel.getRed() != 0 || pixel.getGreen() != 255 || pixel.getBlue() != 0)
+ {
+ failed = true;
+ }
+ }
+ if (failed)
+ {
+ break;
+ }
+ }
+ }
+
+ deleteFramebufferObjects();
+
+ if (failed)
+ {
+ log << TestLog::Image("Result image", "Result image", pixels);
+ }
+
+ log << TestLog::Message << "Test result: " << (failed ? "Failed!" : "Passed!") << TestLog::EndMessage;
+
+ if (failed)
+ {
+ m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Fail");
+ return STOP;
+ }
+
+ return (++m_caseIndex < NUM_CASE_ITERATIONS) ? CONTINUE : STOP;
+}
+
+MultiviewTests::MultiviewTests(Context& context) : TestCaseGroup(context, "multiview", "Multiview Tests")
+{
+}
+
+MultiviewTests::~MultiviewTests()
+{
+}
+
+void MultiviewTests::init()
+{
+ addChild(new MultiviewCase(m_context, "samples_1", "Multiview test without multisampling", 1));
+ addChild(new MultiviewCase(m_context, "samples_2", "Multiview test with MSAAx2", 2));
+ addChild(new MultiviewCase(m_context, "samples_4", "Multiview test without MSAAx4", 4));
+}
+
+} // namespace Functional
+} // namespace gles3
+} // namespace deqp
diff --git a/modules/gles3/functional/es3fMultiviewTests.hpp b/modules/gles3/functional/es3fMultiviewTests.hpp
new file mode 100644
index 0000000..e13bcba
--- /dev/null
+++ b/modules/gles3/functional/es3fMultiviewTests.hpp
@@ -0,0 +1,55 @@
+#ifndef _ES3FMULTIVIEWTESTS_HPP
+#define _ES3FMULTIVIEWTESTS_HPP
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES 3.0 Module
+ * -------------------------------------------------
+ *
+ * Copyright 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ /*!
+ * \file
+ * \brief Multiview tests.
+ * Tests functionality provided by the three multiview extensions.
+ * Note that this file is formatted using external/openglcts/.clang-format
+*/ /*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tes3TestCase.hpp"
+
+namespace deqp
+{
+namespace gles3
+{
+namespace Functional
+{
+
+class MultiviewTests : public TestCaseGroup
+{
+public:
+ MultiviewTests(Context& context);
+ ~MultiviewTests();
+
+ void init();
+
+private:
+ MultiviewTests(const MultiviewTests& other);
+ MultiviewTests& operator=(const MultiviewTests& other);
+};
+
+} // namespace Functional
+} // namespace gles3
+} // namespace deqp
+
+#endif // _ES3FMULTIVIEWTESTS_HPP
diff --git a/modules/gles3/functional/es3fShaderIndexingTests.cpp b/modules/gles3/functional/es3fShaderIndexingTests.cpp
index d51181e..e61bdc7 100644
--- a/modules/gles3/functional/es3fShaderIndexingTests.cpp
+++ b/modules/gles3/functional/es3fShaderIndexingTests.cpp
@@ -22,6 +22,7 @@
*//*--------------------------------------------------------------------*/
#include "es3fShaderIndexingTests.hpp"
+#include "glsShaderLibrary.hpp"
#include "glsShaderRenderCase.hpp"
#include "gluShaderUtil.hpp"
#include "tcuStringTemplate.hpp"
@@ -1131,6 +1132,13 @@
}
}
}
+
+ {
+ const std::vector<tcu::TestNode*> children = gls::ShaderLibrary(m_testCtx, m_context.getRenderContext(), m_context.getContextInfo()).loadShaderFile("shaders/indexing.test");
+
+ for (int i = 0; i < (int)children.size(); i++)
+ addChild(children[i]);
+ }
}
} // Functional
diff --git a/modules/gles3/functional/es3fShaderStructTests.cpp b/modules/gles3/functional/es3fShaderStructTests.cpp
index ad80a9a..66b9559 100644
--- a/modules/gles3/functional/es3fShaderStructTests.cpp
+++ b/modules/gles3/functional/es3fShaderStructTests.cpp
@@ -1120,6 +1120,39 @@
c.color.y() = 1.0f;
c.color.z() = 1.0f;
});
+
+ LOCAL_STRUCT_CASE(array_member_equality, "Struct with array members equality",
+ LineStream()
+ << "${HEADER}"
+ << ""
+ << "struct S {"
+ << " bool m[2];"
+ << "};"
+ << ""
+ << "void main (void)"
+ << "{"
+ << " S a;"
+ << " a.m[0] = true;"
+ << " a.m[1] = false;"
+ << ""
+ << " S b;"
+ << " b.m[0] = true;"
+ << " b.m[1] = false;"
+ << ""
+ << " S c;"
+ << " c.m[0] = true;"
+ << " c.m[1] = true;"
+ << ""
+ << " ${DST} = vec4(0.0, 0.0, 1.0, 1.0);"
+ << " if (a == b) ${DST}.x = 1.0;"
+ << " if (a != c) ${DST}.y = 1.0;"
+ << " ${ASSIGN_POS}"
+ << "}",
+ {
+ c.color.x() = 1.0f;
+ c.color.y() = 1.0f;
+ c.color.z() = 1.0f;
+ });
}
class UniformStructTests : public TestCaseGroup
diff --git a/modules/gles3/functional/es3fTextureSizeTests.cpp b/modules/gles3/functional/es3fTextureSizeTests.cpp
index a085d64..6eeed5a 100644
--- a/modules/gles3/functional/es3fTextureSizeTests.cpp
+++ b/modules/gles3/functional/es3fTextureSizeTests.cpp
@@ -123,7 +123,10 @@
RandomViewport viewport (m_renderCtx.getRenderTarget(), 128, 128, deStringHash(getName()));
tcu::Surface renderedFrame (viewport.width, viewport.height);
tcu::Surface referenceFrame (viewport.width, viewport.height);
- tcu::RGBA threshold = m_renderCtx.getRenderTarget().getPixelFormat().getColorThreshold() + tcu::RGBA(7,7,7,7);
+ const tcu::IVec4 texBits = tcu::getTextureFormatBitDepth(glu::mapGLTransferFormat(m_format, m_dataType));
+ const tcu::PixelFormat& rtFmt = m_renderCtx.getRenderTarget().getPixelFormat();
+ const tcu::PixelFormat thresholdFormat(std::min(texBits[0], rtFmt.redBits), std::min(texBits[1], rtFmt.greenBits), std::min(texBits[2], rtFmt.blueBits), std::min(texBits[3], rtFmt.alphaBits));
+ tcu::RGBA threshold = thresholdFormat.getColorThreshold() + tcu::RGBA(7,7,7,7);
deUint32 wrapS = GL_CLAMP_TO_EDGE;
deUint32 wrapT = GL_CLAMP_TO_EDGE;
deUint32 minFilter = m_useMipmaps ? GL_NEAREST_MIPMAP_NEAREST : GL_NEAREST;
@@ -266,7 +269,10 @@
RandomViewport viewport (m_renderCtx.getRenderTarget(), 128, 128, deStringHash(getName())+(deUint32)face);
tcu::Surface renderedFrame (viewport.width, viewport.height);
tcu::Surface referenceFrame (viewport.width, viewport.height);
- tcu::RGBA threshold = m_renderCtx.getRenderTarget().getPixelFormat().getColorThreshold() + tcu::RGBA(7,7,7,7);
+ const tcu::IVec4 texBits = tcu::getTextureFormatBitDepth(glu::mapGLTransferFormat(m_format, m_dataType));
+ const tcu::PixelFormat& rtFmt = m_renderCtx.getRenderTarget().getPixelFormat();
+ const tcu::PixelFormat thresholdFormat(std::min(texBits[0], rtFmt.redBits), std::min(texBits[1], rtFmt.greenBits), std::min(texBits[2], rtFmt.blueBits), std::min(texBits[3], rtFmt.alphaBits));
+ tcu::RGBA threshold = thresholdFormat.getColorThreshold() + tcu::RGBA(7,7,7,7);
deUint32 wrapS = GL_CLAMP_TO_EDGE;
deUint32 wrapT = GL_CLAMP_TO_EDGE;
deUint32 minFilter = m_useMipmaps ? GL_NEAREST_MIPMAP_NEAREST : GL_NEAREST;
diff --git a/modules/gles31/functional/CMakeLists.txt b/modules/gles31/functional/CMakeLists.txt
index a4ac348..cfaa312 100644
--- a/modules/gles31/functional/CMakeLists.txt
+++ b/modules/gles31/functional/CMakeLists.txt
@@ -193,6 +193,8 @@
es31fShaderFramebufferFetchTests.hpp
es31fNegativeShaderFramebufferFetchTests.cpp
es31fNegativeShaderFramebufferFetchTests.hpp
+ es31fShaderUniformIntegerFunctionTests.cpp
+ es31fShaderUniformIntegerFunctionTests.hpp
)
add_library(deqp-gles31-functional STATIC ${DEQP_GLES31_FUNCTIONAL_SRCS})
diff --git a/modules/gles31/functional/es31fFboSRGBWriteControlTests.cpp b/modules/gles31/functional/es31fFboSRGBWriteControlTests.cpp
index a741c4e..5cbdb0c 100644
--- a/modules/gles31/functional/es31fFboSRGBWriteControlTests.cpp
+++ b/modules/gles31/functional/es31fFboSRGBWriteControlTests.cpp
@@ -1797,8 +1797,8 @@
void FboSRGBUnsupportedEnumCase::init (void)
{
// extension requirements for test
- if (glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::es(3, 2)) || m_context.getContextInfo().isExtensionSupported("GL_EXT_sRGB_write_control"))
- TCU_THROW(NotSupportedError, "Test requires extension GL_EXT_sRGB_write_control to be unsupported and a context version less than 3.2");
+ if (m_context.getContextInfo().isExtensionSupported("GL_EXT_sRGB_write_control"))
+ TCU_THROW(NotSupportedError, "Test requires extension GL_EXT_sRGB_write_control to be unsupported");
}
void FboSRGBUnsupportedEnumCase::deinit (void)
diff --git a/modules/gles31/functional/es31fFunctionalTests.cpp b/modules/gles31/functional/es31fFunctionalTests.cpp
index 3fb407e..325ddac 100644
--- a/modules/gles31/functional/es31fFunctionalTests.cpp
+++ b/modules/gles31/functional/es31fFunctionalTests.cpp
@@ -92,6 +92,7 @@
#include "es31fSRGBDecodeTests.hpp"
#include "es31fDrawElementsBaseVertexTests.hpp"
#include "es31fShaderFramebufferFetchTests.hpp"
+#include "es31fShaderUniformIntegerFunctionTests.hpp"
namespace deqp
{
@@ -153,11 +154,12 @@
void init (void)
{
- addChild(new ShaderCommonFunctionTests (m_context));
- addChild(new ShaderPackingFunctionTests (m_context));
- addChild(new ShaderIntegerFunctionTests (m_context));
- addChild(new ShaderTextureSizeTests (m_context));
- addChild(createBuiltinPrecisionTests (m_context));
+ addChild(new ShaderCommonFunctionTests (m_context));
+ addChild(new ShaderPackingFunctionTests (m_context));
+ addChild(new ShaderIntegerFunctionTests (m_context));
+ addChild(new ShaderUniformIntegerFunctionTests (m_context));
+ addChild(new ShaderTextureSizeTests (m_context));
+ addChild(createBuiltinPrecisionTests (m_context));
}
};
diff --git a/modules/gles31/functional/es31fNegativeComputeTests.cpp b/modules/gles31/functional/es31fNegativeComputeTests.cpp
index eb2e0ec..813a56a 100644
--- a/modules/gles31/functional/es31fNegativeComputeTests.cpp
+++ b/modules/gles31/functional/es31fNegativeComputeTests.cpp
@@ -646,7 +646,7 @@
ctx.glGetIntegerv(GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS, &maxWorkGroupInvocations);
ctx.expectError(GL_NO_ERROR);
- DE_ASSERT((maxWorkGroupSizeX * maxWorkGroupSizeY * maxWorkGroupSizeZ) > maxWorkGroupInvocations );
+ DE_ASSERT(((deInt64) maxWorkGroupSizeX * maxWorkGroupSizeY * maxWorkGroupSizeZ) > maxWorkGroupInvocations );
const bool isES32 = glu::contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2));
const char* const shaderVersion = isES32
diff --git a/modules/gles31/functional/es31fShaderUniformIntegerFunctionTests.cpp b/modules/gles31/functional/es31fShaderUniformIntegerFunctionTests.cpp
new file mode 100644
index 0000000..466d793
--- /dev/null
+++ b/modules/gles31/functional/es31fShaderUniformIntegerFunctionTests.cpp
@@ -0,0 +1,266 @@
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES 3.1 Module
+ * -------------------------------------------------
+ *
+ * Copyright 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Built-in function tests for uniform constants.
+ *//*--------------------------------------------------------------------*/
+
+#include "es31fShaderUniformIntegerFunctionTests.hpp"
+#include "glsShaderExecUtil.hpp"
+#include "glwFunctions.hpp"
+#include "tcuTestLog.hpp"
+#include <iostream>
+
+namespace deqp
+{
+namespace gles31
+{
+namespace Functional
+{
+
+using std::vector;
+using std::string;
+using tcu::TestLog;
+using namespace gls::ShaderExecUtil;
+
+class UniformIntegerFunctionCase : public TestCase
+{
+public:
+ UniformIntegerFunctionCase (Context& context, const char* description, int inputValue, glu::Precision precision, glu::ShaderType shaderType);
+ ~UniformIntegerFunctionCase (void);
+
+ void init (void);
+ void deinit (void);
+ IterateResult iterate (void);
+ virtual const char* getFunctionName() = 0;
+ virtual int computeExpectedResult(deInt32 value) = 0;
+
+protected:
+ UniformIntegerFunctionCase (const UniformIntegerFunctionCase& other);
+ UniformIntegerFunctionCase& operator= (const UniformIntegerFunctionCase& other);
+
+private:
+ ShaderSpec m_spec;
+ glu::ShaderType m_shaderType;
+ int m_input;
+ int m_value;
+ ShaderExecutor* m_executor;
+};
+
+static std::string getCaseName (glu::Precision precision, glu::ShaderType shaderType);
+
+UniformIntegerFunctionCase::UniformIntegerFunctionCase(Context& context, const char* description, int inputValue, glu::Precision precision, glu::ShaderType shaderType)
+ : TestCase(context, getCaseName(precision, shaderType).c_str(), description)
+ , m_shaderType(shaderType)
+ , m_input(inputValue)
+ , m_value(0)
+ , m_executor(DE_NULL)
+{
+ m_spec.version = glu::GLSL_VERSION_310_ES;
+
+ std::ostringstream oss;
+ glu::VarType varType(glu::TYPE_INT, precision);
+ oss << "uniform " << glu::declare(varType, "value", 0) << ";\n";
+ m_spec.globalDeclarations = oss.str();
+ m_spec.outputs.push_back(Symbol("result", glu::VarType(glu::TYPE_INT, glu::PRECISION_LOWP)));
+ m_spec.outputs.push_back(Symbol("comparison", glu::VarType(glu::TYPE_BOOL, glu::PRECISION_LAST)));
+}
+
+UniformIntegerFunctionCase::~UniformIntegerFunctionCase(void)
+{
+ UniformIntegerFunctionCase::deinit();
+}
+
+void UniformIntegerFunctionCase::deinit(void)
+{
+ delete m_executor;
+ m_executor = DE_NULL;
+}
+
+void UniformIntegerFunctionCase::init(void)
+{
+ std::ostringstream oss;
+ oss <<
+ "result = " << getFunctionName() << "(value);\n"
+ "comparison = (" << getFunctionName() << "(value) == " << computeExpectedResult(m_input) << ");\n";
+ m_spec.source = oss.str();
+
+ DE_ASSERT(!m_executor);
+ m_executor = createExecutor(m_context.getRenderContext(), m_shaderType, m_spec);
+ m_testCtx.getLog() << m_executor;
+
+ if (!m_executor->isOk())
+ throw tcu::TestError("Compile failed");
+
+ m_value = m_context.getRenderContext().getFunctions().getUniformLocation(m_executor->getProgram(), "value");
+}
+
+tcu::TestNode::IterateResult UniformIntegerFunctionCase::iterate(void)
+{
+ deInt32 result;
+ deBool comparison;
+ vector<void*> outputPointers (2);
+
+ outputPointers[0]= &result;
+ outputPointers[1] = &comparison;
+
+ m_executor->useProgram();
+ m_context.getRenderContext().getFunctions().uniform1i(m_value, m_input);
+ m_executor->execute(1, DE_NULL, &outputPointers[0]);
+
+ int expectedResult = computeExpectedResult(m_input);
+ if (result != expectedResult) {
+ m_testCtx.getLog() << TestLog::Message << "ERROR: comparison failed for " << getFunctionName() << "(" << m_input << ") == " << expectedResult << TestLog::EndMessage;
+ m_testCtx.getLog() << TestLog::Message << "input: " << m_input << TestLog::EndMessage;
+ m_testCtx.getLog() << TestLog::Message << "result: " << result << TestLog::EndMessage;
+ m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Result comparison failed");
+ return STOP;
+ } else if (!comparison) {
+ m_testCtx.getLog() << TestLog::Message << "ERROR: result is as expected, but not when use in condition statement (" << getFunctionName() << "(" << m_input << ") == " << expectedResult << ") == true" << TestLog::EndMessage;
+ m_testCtx.getLog() << TestLog::Message << "input:" << m_input << TestLog::EndMessage;
+ m_testCtx.getLog() << TestLog::Message << "result: " << result << TestLog::EndMessage;
+ m_testCtx.getLog() << TestLog::Message << "comparison: " << comparison << TestLog::EndMessage;
+ m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Result comparison failed");
+ return STOP;
+ }
+ m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
+ return STOP;
+}
+
+static const char* getPrecisionPostfix (glu::Precision precision)
+{
+ static const char* s_postfix[] =
+ {
+ "lowp",
+ "mediump",
+ "highp"
+ };
+ DE_STATIC_ASSERT(DE_LENGTH_OF_ARRAY(s_postfix) == glu::PRECISION_LAST);
+ DE_ASSERT(de::inBounds<int>(precision, 0, DE_LENGTH_OF_ARRAY(s_postfix)));
+ return s_postfix[precision];
+}
+
+static const char* getShaderTypePostfix (glu::ShaderType shaderType)
+{
+ static const char* s_postfix[] =
+ {
+ "_vertex",
+ "_fragment",
+ "_geometry",
+ "_tess_control",
+ "_tess_eval",
+ "_compute"
+ };
+ DE_ASSERT(de::inBounds<int>(shaderType, 0, DE_LENGTH_OF_ARRAY(s_postfix)));
+ return s_postfix[shaderType];
+}
+
+static std::string getCaseName (glu::Precision precision, glu::ShaderType shaderType)
+{
+ return string(getPrecisionPostfix(precision)) + getShaderTypePostfix(shaderType);
+}
+
+static int findMSB (deInt32 value)
+{
+ if (value > 0)
+ return 31 - deClz32((deUint32)value);
+ else if (value < 0)
+ return 31 - deClz32(~(deUint32)value);
+ else
+ return -1;
+}
+
+class FindMSBEdgeCase : public UniformIntegerFunctionCase {
+public:
+ FindMSBEdgeCase(Context& context, int inputValue, glu::Precision precision, glu::ShaderType shaderType)
+ : UniformIntegerFunctionCase(context, "findMSB", inputValue, precision, shaderType)
+ {
+ }
+
+protected:
+ const char* getFunctionName() {
+ return "findMSB";
+ }
+
+ int computeExpectedResult(deInt32 input) {
+ return findMSB(input);
+ }
+};
+
+static int findLSB (deUint32 value)
+{
+ for (int i = 0; i < 32; i++)
+ {
+ if (value & (1u<<i))
+ return i;
+ }
+ return -1;
+}
+
+class FindLSBEdgeCase : public UniformIntegerFunctionCase {
+public:
+ FindLSBEdgeCase(Context& context, int inputValue, glu::Precision precision, glu::ShaderType shaderType)
+ : UniformIntegerFunctionCase(context, "findLSB", inputValue, precision, shaderType)
+ {
+ }
+
+protected:
+ const char* getFunctionName() {
+ return "findLSB";
+ }
+
+ int computeExpectedResult(deInt32 input) {
+ return findLSB(input);
+ }
+};
+
+
+template<class TestClass>
+static void addFunctionCases (TestCaseGroup* parent, const char* functionName, int input)
+{
+ tcu::TestCaseGroup* group = new tcu::TestCaseGroup(parent->getTestContext(), functionName, functionName);
+ parent->addChild(group);
+ for (int prec = glu::PRECISION_LOWP; prec <= glu::PRECISION_HIGHP; prec++)
+ {
+ for (int shaderTypeNdx = 0; shaderTypeNdx < glu::SHADERTYPE_LAST; shaderTypeNdx++)
+ {
+ group->addChild(new TestClass(parent->getContext(), input, glu::Precision(prec), glu::ShaderType(shaderTypeNdx)));
+ }
+ }
+}
+
+ShaderUniformIntegerFunctionTests::ShaderUniformIntegerFunctionTests(Context& context)
+ : TestCaseGroup(context, "uniform", "Function on uniform")
+{
+}
+
+ShaderUniformIntegerFunctionTests::~ShaderUniformIntegerFunctionTests()
+{
+}
+void ShaderUniformIntegerFunctionTests::init()
+{
+ addFunctionCases<FindMSBEdgeCase>(this, "findMSBZero", 0);
+ addFunctionCases<FindMSBEdgeCase>(this, "findMSBMinusOne", -1);
+ addFunctionCases<FindLSBEdgeCase>(this, "findLSBZero", 0);
+ addFunctionCases<FindLSBEdgeCase>(this, "findLSBMinusOne", -1);
+}
+
+}
+}
+}
diff --git a/modules/gles31/functional/es31fShaderUniformIntegerFunctionTests.hpp b/modules/gles31/functional/es31fShaderUniformIntegerFunctionTests.hpp
new file mode 100644
index 0000000..8d32fe3
--- /dev/null
+++ b/modules/gles31/functional/es31fShaderUniformIntegerFunctionTests.hpp
@@ -0,0 +1,53 @@
+#ifndef _ES31FSHADERUNIFORMINTEGERFUNCTIONTESTS_HPP
+#define _ES31FSHADERUNIFORMINTEGERFUNCTIONTESTS_HPP
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES 3.1 Module
+ * -------------------------------------------------
+ *
+ * Copyright 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Built-in function tests for uniform constants.
+ *//*--------------------------------------------------------------------*/
+
+#include <gluShaderProgram.hpp>
+#include "tes31TestCase.hpp"
+
+namespace deqp
+{
+namespace gles31
+{
+namespace Functional
+{
+
+class ShaderUniformIntegerFunctionTests : public TestCaseGroup
+{
+public:
+ ShaderUniformIntegerFunctionTests (Context& context);
+ virtual ~ShaderUniformIntegerFunctionTests (void);
+
+ virtual void init (void);
+
+private:
+ ShaderUniformIntegerFunctionTests (const ShaderUniformIntegerFunctionTests&); // not allowed!
+ ShaderUniformIntegerFunctionTests& operator= (const ShaderUniformIntegerFunctionTests&); // not allowed!
+};
+
+} // Functional
+} // gles31
+} // deqp
+
+#endif // _ES31FSHADERUNIFORMINTEGERFUNCTIONTESTS_HPP
diff --git a/modules/glshared/glsBuiltinPrecisionTests.cpp b/modules/glshared/glsBuiltinPrecisionTests.cpp
index da69f89..34171f6 100644
--- a/modules/glshared/glsBuiltinPrecisionTests.cpp
+++ b/modules/glshared/glsBuiltinPrecisionTests.cpp
@@ -244,6 +244,13 @@
return Traits<T>::doContains(ival, value);
}
+//! Returns true iff every element of `ival` contains corresponding element of `value` within the warning interval
+template <typename T>
+bool containsWarning(const typename Traits<T>::IVal& ival, const T& value)
+{
+ return Traits<T>::doContainsWarning(ival, value);
+}
+
//! Print out an interval with the precision of `fmt`.
template <typename T>
void printIVal (const FloatFormat& fmt, const typename Traits<T>::IVal& ival, ostream& os)
@@ -313,6 +320,11 @@
return a.contains(double(value));
}
+ static bool doContainsWarning(const Interval& a, T value)
+ {
+ return a.containsWarning(double(value));
+ }
+
static Interval doConvert (const FloatFormat& fmt, const IVal& ival)
{
return fmt.convert(ival);
@@ -422,6 +434,15 @@
return true;
}
+ static bool doContainsWarning(const IVal& ival, const T& value)
+ {
+ for (int ndx = 0; ndx < T::SIZE; ++ndx)
+ if (!containsWarning(ival[ndx], value[ndx]))
+ return false;
+
+ return true;
+ }
+
static void doPrintIVal (const FloatFormat& fmt, const IVal ival, ostream& os)
{
os << "(";
@@ -492,11 +513,12 @@
{
typedef Void IVal;
- static Void doMakeIVal (const Void& value) { return value; }
- static Void doUnion (const Void&, const Void&) { return Void(); }
- static bool doContains (const Void&, Void) { return true; }
- static Void doRound (const FloatFormat&, const Void& value) { return value; }
- static Void doConvert (const FloatFormat&, const Void& value) { return value; }
+ static Void doMakeIVal (const Void& value) { return value; }
+ static Void doUnion (const Void&, const Void&) { return Void(); }
+ static bool doContains (const Void&, Void) { return true; }
+ static bool doContainsWarning (const Void&, Void) { return true; }
+ static Void doRound (const FloatFormat&, const Void& value) { return value; }
+ static Void doConvert (const FloatFormat&, const Void& value) { return value; }
static void doPrintValue (const FloatFormat&, const Void&, ostream& os)
{
@@ -1702,8 +1724,10 @@
{
const double exact = this->applyExact(arg0);
const double prec = this->precision(ctx, exact, arg0);
-
- return exact + Interval(-prec, prec);
+ const double wprec = this->warningPrecision(ctx, exact, arg0);
+ Interval ioutput = exact + Interval(-prec, prec);
+ ioutput.warning(exact - wprec, exact + wprec);
+ return ioutput;
}
virtual double applyExact (double) const
@@ -1717,6 +1741,12 @@
}
virtual double precision (const EvalContext& ctx, double, double) const = 0;
+
+ virtual double warningPrecision (const EvalContext& ctx, double exact, double arg0) const
+ {
+ return precision(ctx, exact, arg0);
+ }
+
};
class CFloatFunc1 : public FloatFunc1
@@ -2142,6 +2172,21 @@
return 0;
}
+
+ // OpenGL API Issue #57 "Clarifying the required ULP precision for GLSL built-in log()". Agreed that
+ // implementations will be allowed 4 ULPs for HIGHP Log/Log2, but CTS should generate a quality warning.
+ double warningPrecision(const EvalContext& ctx, double ret, double x) const
+ {
+ if (ctx.floatPrecision == glu::PRECISION_HIGHP && x > 0)
+ {
+ return (0.5 <= x && x <= 2.0) ? deLdExp(1.0, -21) : ctx.format.ulp(ret, 4.0);
+ }
+ else
+ {
+ return precision(ctx, ret, x);
+ }
+ }
+
};
class Log2 : public LogFunc { public: Log2 (void) : LogFunc("log2", deLog2) {} };
@@ -2924,12 +2969,32 @@
protected:
ExprP<float> doExpand (ExpandContext&, const ArgExprs& args) const
{
- ExprP<float> val = args.a[0] * args.b[0];
+ ExprP<float> op[Size];
+ // Precompute all products.
+ for (int ndx = 0; ndx < Size; ++ndx)
+ op[ndx] = args.a[ndx] * args.b[ndx];
+ int idx[Size];
+ //Prepare an array of indices.
+ for (int ndx = 0; ndx < Size; ++ndx)
+ idx[ndx] = ndx;
+
+ ExprP<float> res = op[0];
+ // Compute the first dot alternative: SUM(a[i]*b[i]), i = 0 .. Size-1
for (int ndx = 1; ndx < Size; ++ndx)
- val = val + args.a[ndx] * args.b[ndx];
+ res = res + op[ndx];
- return val;
+ // Generate all permutations of indices and
+ // using a permutation compute a dot alternative.
+ // Generates all possible variants fo summation of products in the dot product expansion expression.
+ do {
+ ExprP<float> alt = constant(0.0f);
+ for (int ndx = 0; ndx < Size; ++ndx)
+ alt = alt + op[idx[ndx]];
+ res = alternatives(res, alt);
+ } while (std::next_permutation(idx, idx + Size));
+
+ return res;
}
};
@@ -4588,7 +4653,10 @@
// shader output to the reference.
for (size_t valueNdx = 0; valueNdx < numValues; valueNdx++)
{
- bool result = true;
+ bool result = true;
+ bool inExpectedRange;
+ bool inWarningRange;
+ const char* failStr = "Fail";
typename Traits<Out0>::IVal reference0;
typename Traits<Out1>::IVal reference1;
@@ -4608,15 +4676,39 @@
switch (outCount)
{
case 2:
- reference1 = convert<Out1>(highpFmt, env.lookup(*variables.out1));
- if (!m_status.check(contains(reference1, outputs.out1[valueNdx]),
- "Shader output 1 is outside acceptable range"))
+ reference1 = convert<Out1>(highpFmt, env.lookup(*variables.out1));
+ inExpectedRange = contains(reference1, outputs.out1[valueNdx]);
+ inWarningRange = containsWarning(reference1, outputs.out1[valueNdx]);
+ if (!inExpectedRange && inWarningRange)
+ {
+ m_status.addResult(QP_TEST_RESULT_QUALITY_WARNING, "Shader output 1 has low-quality shader precision");
+ failStr = "QualityWarning";
result = false;
+ }
+ else if (!inExpectedRange)
+ {
+ m_status.addResult(QP_TEST_RESULT_FAIL, "Shader output 1 is outside acceptable range");
+ failStr = "Fail";
+ result = false;
+ }
+
case 1:
- reference0 = convert<Out0>(highpFmt, env.lookup(*variables.out0));
- if (!m_status.check(contains(reference0, outputs.out0[valueNdx]),
- "Shader output 0 is outside acceptable range"))
+ reference0 = convert<Out0>(highpFmt, env.lookup(*variables.out0));
+ inExpectedRange = contains(reference0, outputs.out0[valueNdx]);
+ inWarningRange = containsWarning(reference0, outputs.out0[valueNdx]);
+ if (!inExpectedRange && inWarningRange)
+ {
+ m_status.addResult(QP_TEST_RESULT_QUALITY_WARNING, "Shader output 0 has low-quality shader precision");
+ failStr = "QualityWarning";
result = false;
+ }
+ else if (!inExpectedRange)
+ {
+ m_status.addResult(QP_TEST_RESULT_FAIL, "Shader output 0 is outside acceptable range");
+ failStr = "Fail";
+ result = false;
+ }
+
default: break;
}
@@ -4627,7 +4719,7 @@
{
MessageBuilder builder = log().message();
- builder << (result ? "Passed" : "Failed") << " sample:\n";
+ builder << (result ? "Passed" : failStr) << " sample:\n";
if (inCount > 0)
{
@@ -4686,7 +4778,7 @@
}
else
{
- log() << TestLog::Message << numErrors << "/" << numValues << " inputs failed."
+ log() << TestLog::Message << numErrors << "/" << numValues << " inputs failed or had quality warnings."
<< TestLog::EndMessage;
}
}
diff --git a/scripts/egl/common.py b/scripts/egl/common.py
index 919fece..15371b5 100644
--- a/scripts/egl/common.py
+++ b/scripts/egl/common.py
@@ -74,7 +74,11 @@
"EGL_EXT_gl_colorspace_display_p3",
"EGL_EXT_gl_colorspace_display_p3_linear",
"EGL_EXT_gl_colorspace_scrgb",
- "EGL_EXT_gl_colorspace_scrgb_linear"
+ "EGL_EXT_gl_colorspace_scrgb_linear",
+ "EGL_EXT_surface_SMPTE2086_metadata",
+ "EGL_EXT_surface_CTA861_3_metadata",
+ "EGL_EXT_gl_colorspace_bt2020_linear",
+ "EGL_EXT_gl_colorspace_bt2020_pq"
]
PROTECTS = [
"KHRONOS_SUPPORT_INT64"
diff --git a/scripts/mustpass.py b/scripts/mustpass.py
index 5d5b804..34e11f1 100644
--- a/scripts/mustpass.py
+++ b/scripts/mustpass.py
@@ -306,6 +306,7 @@
configElement = ElementTree.Element("configuration")
# add in metadata option for component name
+ ElementTree.SubElement(configElement, "option", name="test-suite-tag", value="cts")
ElementTree.SubElement(configElement, "option", name="config-descriptor:metadata", key="component", value="deqp")
for package in mustpass.packages:
diff --git a/scripts/opengl/src_util.py b/scripts/opengl/src_util.py
index 6494273..cfb5120 100644
--- a/scripts/opengl/src_util.py
+++ b/scripts/opengl/src_util.py
@@ -72,6 +72,8 @@
'GL_KHR_robustness',
'GL_EXT_draw_elements_base_vertex',
'GL_OES_draw_elements_base_vertex',
+ 'GL_OVR_multiview',
+ 'GL_OVR_multiview_multisampled_render_to_texture',
]
def getGLRegistry ():
diff --git a/targets/surfaceless/surfaceless.cmake b/targets/surfaceless/surfaceless.cmake
new file mode 100644
index 0000000..f506112
--- /dev/null
+++ b/targets/surfaceless/surfaceless.cmake
@@ -0,0 +1,47 @@
+message("*** Using Surfaceless target")
+
+set(DEQP_TARGET_NAME "Surfaceless")
+
+include(FindPkgConfig)
+
+set(DEQP_USE_SURFACELESS ON)
+
+set(DEQP_SUPPORT_GLES2 ON)
+set(DEQP_SUPPORT_GLES3 ON)
+set(DEQP_SUPPORT_EGL ON)
+
+find_library(GLES2_LIBRARIES GLESv2)
+find_library(GLES3_LIBRARIES GLESv3)
+find_path(GLES2_INCLUDE_PATH GLES2/gl2.h)
+find_path(GLES3_INCLUDE_PATH GLES3/gl3.h)
+
+if (GLES2_INCLUDE_PATH AND GLES2_LIBRARIES)
+ set(DEQP_GLES2_LIBRARIES ${GLES2_LIBRARIES})
+else ()
+ message (SEND_ERROR "GLESv2 support not found")
+endif ()
+
+if (GLES3_INCLUDE_PATH AND GLES3_LIBRARIES)
+ set(DEQP_GLES3_LIBRARIES ${GLES3_LIBRARIES})
+elseif (GLES3_INCLUDE_PATH AND GLES2_LIBRARIES)
+ # Assume GLESv2 provides ES3 symbols if gl3.h was found
+ # and the GLESv3 library was not.
+ set(DEQP_GLES3_LIBRARIES ${GLES2_LIBRARIES})
+else ()
+ message (FATAL_ERROR "GLESv3 support not found")
+endif ()
+
+pkg_check_modules(EGL REQUIRED egl)
+set(DEQP_EGL_LIBRARIES ${EGL_LIBRARIES})
+
+pkg_check_modules(GBM REQUIRED gbm)
+pkg_check_modules(KMS REQUIRED libkms)
+pkg_check_modules(DRM REQUIRED libdrm)
+
+include_directories(${GLES2_INCLUDE_PATH} ${GLES3_INCLUDE_PATH}
+ ${EGL_INCLUDE_DIRS} ${GBM_INCLUDE_DIRS}
+ ${KMS_INCLUDE_DIRS} ${DRM_INCLUDE_DIRS})
+
+set(DEQP_PLATFORM_LIBRARIES ${DEQP_GLES2_LIBRARIES} ${DEQP_GLES3_LIBRARIES}
+ ${DEQP_EGL_LIBRARIES} ${GBM_LIBRARIES}
+ ${KMS_LIBRARIES} ${DRM_LIBRARIES})