DO NOT MERGE: Sparse resources fixes am: ae793c389b -s ours am: ce25f76fbb -s ours
authorKantoch <marcin.kantoch@mobica.com>
Fri, 9 Feb 2018 19:05:40 +0000 (19:05 +0000)
committerandroid-build-merger <android-build-merger@google.com>
Fri, 9 Feb 2018 19:05:40 +0000 (19:05 +0000)
am: fe93d4f83c  -s ours

Change-Id: I14929e52bc985f4d152628b48b4a6a76577738a7

72 files changed:
Android.mk
CMakeLists.txt
android/cts/AndroidTest.xml
android/cts/master/egl-master.txt
android/cts/master/gles2-master.txt
android/cts/master/gles3-master.txt
android/cts/master/src/vk-excluded-tests.txt
android/cts/master/vk-master.txt
data/gles2/shaders/declarations.test
data/gles3/shaders/arrays.test
data/gles3/shaders/declarations.test
data/gles3/shaders/indexing.test [new file with mode: 0644]
data/gles3/shaders/loops.test
framework/common/tcuApp.cpp
framework/common/tcuApp.hpp
framework/common/tcuFuzzyImageCompare.cpp
framework/common/tcuInterval.hpp
framework/common/tcuPixelFormat.hpp
framework/common/tcuTextureUtil.cpp
framework/delibs/cmake/CFlags.cmake
framework/egl/wrapper/eglwEnums.inl
framework/egl/wrapper/eglwEnumsC.inl
framework/opengl/gluCallLogWrapper.inl
framework/opengl/gluCallLogWrapperApi.inl
framework/opengl/wrapper/glwApi.inl
framework/opengl/wrapper/glwEnums.inl
framework/opengl/wrapper/glwFunctionTypes.inl
framework/opengl/wrapper/glwFunctions.inl
framework/opengl/wrapper/glwImpl.inl
framework/opengl/wrapper/glwInitExtES.inl
framework/opengl/wrapper/glwInitExtGL.inl
framework/platform/CMakeLists.txt
framework/platform/android/tcuAndroidMain.cpp
framework/platform/lnx/X11/tcuLnxX11.cpp
framework/platform/null/tcuNullRenderContextFuncs.inl
framework/platform/null/tcuNullRenderContextInitFuncs.inl
framework/platform/surfaceless/tcuSurfacelessPlatform.cpp [new file with mode: 0644]
framework/platform/surfaceless/tcuSurfacelessPlatform.hpp [new file with mode: 0644]
modules/egl/teglColorClearCase.cpp
modules/egl/teglGLES2SharedRenderingPerfTests.cpp
modules/egl/teglGetFrameTimestampsTests.cpp
modules/egl/teglImageTests.cpp
modules/egl/teglMultiThreadTests.cpp
modules/egl/teglNegativeApiTests.cpp
modules/egl/teglRenderTests.cpp
modules/egl/teglTestPackage.cpp
modules/egl/teglThreadCleanUpTests.cpp
modules/egl/teglWideColorTests.cpp
modules/egl/teglWideColorTests.hpp
modules/gles2/functional/es2fFlushFinishTests.cpp
modules/gles2/functional/es2fNegativeBufferApiTests.cpp
modules/gles2/functional/es2fRasterizationTests.cpp
modules/gles2/functional/es2fShaderOperatorTests.cpp
modules/gles2/functional/es2fShaderStructTests.cpp
modules/gles2/functional/es2fTextureCompletenessTests.cpp
modules/gles2/functional/es2fTextureSizeTests.cpp
modules/gles3/functional/CMakeLists.txt
modules/gles3/functional/es3fFboMultisampleTests.cpp
modules/gles3/functional/es3fFlushFinishTests.cpp
modules/gles3/functional/es3fFunctionalTests.cpp
modules/gles3/functional/es3fMultiviewTests.cpp [new file with mode: 0644]
modules/gles3/functional/es3fMultiviewTests.hpp [new file with mode: 0644]
modules/gles3/functional/es3fShaderIndexingTests.cpp
modules/gles3/functional/es3fShaderStructTests.cpp
modules/gles3/functional/es3fTextureSizeTests.cpp
modules/gles31/functional/es31fFboSRGBWriteControlTests.cpp
modules/gles31/functional/es31fNegativeComputeTests.cpp
modules/glshared/glsBuiltinPrecisionTests.cpp
scripts/egl/common.py
scripts/mustpass.py
scripts/opengl/src_util.py
targets/surfaceless/surfaceless.cmake [new file with mode: 0644]

index 7d60924..ae8de10 100644 (file)
@@ -712,6 +712,7 @@ LOCAL_SRC_FILES := \
        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 \
@@ -1027,6 +1028,8 @@ deqp_compile_flags := \
        -DDEQP_GLES3_RUNTIME_LOAD=1 \
        -DDEQP_GLES2_RUNTIME_LOAD=1 \
        -DQP_SUPPORT_PNG=1 \
+       -Wall \
+       -Werror \
        -Wconversion \
        -fwrapv \
        -Wno-sign-conversion
@@ -1049,9 +1052,14 @@ LOCAL_CFLAGS += \
 
 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)
 
index 1ecdd52..445cf7c 100644 (file)
@@ -57,8 +57,14 @@ endif ()
 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")
index a880b85..1851772 100644 (file)
@@ -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"/>
index 3d71c30..ab4087f 100644 (file)
@@ -3670,3 +3670,5 @@ dEQP-EGL.functional.wide_color.window_8888_colorspace_p3
 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
index 2b6f7c7..7d783c9 100644 (file)
@@ -1115,6 +1115,11 @@ dEQP-GLES2.functional.shaders.declarations.invalid_declarations.uniform_in_verte
 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.highp_bool_vec2_fra
 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_vertex
 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.lines
 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
index 8156022..903b34b 100644 (file)
@@ -2832,6 +2832,37 @@ dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_ar
 dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_array_without_instance_name_2_fragment
 dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_in_vertex
 dEQP-GLES3.functional.shaders.declarations.invalid_declarations.uniform_block_in_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.float_partially_specified_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.float_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.vec2_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.vec3_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.vec4_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler3D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler3D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.samplerCubeShadow_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.samplerCubeShadow_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DShadow_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DShadow_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DArray_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DArray_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.sampler2DArrayShadow_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler2D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler2D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler3D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler3D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isamplerCube_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isamplerCube_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler2DArray_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.isampler2DArray_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler2D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler2D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler3D_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler3D_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usamplerCube_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usamplerCube_fragment
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler2DArray_vertex
+dEQP-GLES3.functional.shaders.declarations.unspecified_precision.usampler2DArray_fragment
 dEQP-GLES3.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_vertex
 dEQP-GLES3.functional.shaders.swizzles.vector_swizzles.mediump_vec2_x_fragment
 dEQP-GLES3.functional.shaders.swizzles.vector_swizzles.mediump_vec2_xx_vertex
@@ -4449,6 +4480,14 @@ dEQP-GLES3.functional.shaders.arrays.invalid.constructor_c_style3_vertex
 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 +5811,34 @@ dEQP-GLES3.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_
 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 +6410,14 @@ dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.nested_tricky_da
 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 +15548,8 @@ dEQP-GLES3.functional.shaders.struct.local.dynamic_loop_struct_array_vertex
 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 +30505,13 @@ dEQP-GLES3.functional.fbo.msaa.8_samples.depth_component16
 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
index fee498d..00b6fe0 100644 (file)
@@ -336,14 +336,6 @@ dEQP-VK.glsl.builtin_var.fragcoord_msaa.*
 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.*
 
index c9d76f4..3da3f2a 100644 (file)
@@ -169760,6 +169760,7 @@ dEQP-VK.ubo.random.all_shared_buffer.44
 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.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.41
 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.sample
 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
index 4dfb0a4..80c513f 100644 (file)
@@ -138,3 +138,63 @@ group invalid_declarations "Invalid declarations"
        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
index 2144a11..4a9c5fe 100644 (file)
@@ -1996,3 +1996,134 @@ group invalid "Invalid Functions"
        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
index 86f98d9..22945c8 100644 (file)
@@ -589,3 +589,208 @@ group invalid_declarations "Invalid declarations"
        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 (file)
index 0000000..49eaa3b
--- /dev/null
@@ -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
index a8f1e4d..619179b 100644 (file)
@@ -27,3 +27,151 @@ group custom "Custom loop tests"
        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
index 949f083..fa76c7d 100644 (file)
@@ -98,7 +98,7 @@ App::App (Platform& platform, Archive& archive, TestLog& log, const CommandLine&
 
                // 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())
index e714160..5c25fe1 100644 (file)
@@ -42,6 +42,12 @@ class CommandLine;
 class TestLog;
 class TestPackageRoot;
 
+enum
+{
+       WATCHDOG_TOTAL_TIME_LIMIT_SECS          = 300,
+       WATCHDOG_INTERVAL_TIME_LIMIT_SECS       = 30
+};
+
 /*--------------------------------------------------------------------*//*!
  * \brief Test application
  *
index 596ab83..4e76476 100644 (file)
@@ -318,7 +318,7 @@ float fuzzyCompare (const FuzzyCompareParams& params, const ConstPixelBufferAcce
 
        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);
index cc271a1..bbbdf3e 100644 (file)
@@ -58,42 +58,60 @@ class Interval
 {
 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 @@ public:
        {
                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 @@ public:
                                (!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 @@ public:
 
        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 @@ private:
        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; }
index 2aa60c3..e7f9936 100644 (file)
@@ -55,6 +55,20 @@ struct PixelFormat
        {
        }
 
+       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 @@ struct PixelFormat
        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;
                }
        }
 
index 48e49e2..215442b 100644 (file)
@@ -381,11 +381,11 @@ static Vec2 getFloatChannelValueRange (TextureFormat::ChannelType channelType)
                // 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;
index 8a4b9ad..bcb11ab 100644 (file)
@@ -53,6 +53,11 @@ if (DE_COMPILER_IS_GCC OR DE_COMPILER_IS_CLANG)
        # 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
 
index b0e51b6..52fee22 100644 (file)
 #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
index 5a1cf17..52a26a5 100644 (file)
 #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
index 0743712..d9f3b5d 100644 (file)
@@ -1236,6 +1236,20 @@ void CallLogWrapper::glFramebufferTextureLayer (glw::GLenum target, glw::GLenum
        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)
index 71bddd9..9acbee0 100644 (file)
@@ -176,6 +176,8 @@ void                                        glFramebufferTexture1D                                                  (glw::GLenum target, glw::GLenum attachmen
 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);
index befa4b9..4e4f520 100644 (file)
 #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                        glwFramebufferTexture1D                                                 (GLenum target, GLenum attachment, GLenum t
 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);
index d6e51ab..6506906 100644 (file)
 #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
index 63adcec..9c0bdd9 100644 (file)
@@ -176,6 +176,8 @@ typedef GLW_APICALL void                    (GLW_APIENTRY* glFramebufferTexture1DFunc)                                                      (GLe
 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);
index 4d304eb..0895423 100644 (file)
@@ -176,6 +176,8 @@ glFramebufferTexture1DFunc                                                  framebufferTexture1D;
 glFramebufferTexture2DFunc                                                     framebufferTexture2D;
 glFramebufferTexture3DFunc                                                     framebufferTexture3D;
 glFramebufferTextureLayerFunc                                          framebufferTextureLayer;
+glFramebufferTextureMultisampleMultiviewOVRFunc                framebufferTextureMultisampleMultiviewOVR;
+glFramebufferTextureMultiviewOVRFunc                           framebufferTextureMultiviewOVR;
 glFrontFaceFunc                                                                                frontFace;
 glGenBuffersFunc                                                                       genBuffers;
 glGenFramebuffersFunc                                                          genFramebuffers;
index ed39d82..c958017 100644 (file)
@@ -1388,6 +1388,22 @@ void glwFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint textur
        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();
index fc74f3b..a167f56 100644 (file)
@@ -137,3 +137,13 @@ if (de::contains(extSet, "GL_OES_draw_elements_base_vertex"))
        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");
+}
index 590ef0d..2196cdc 100644 (file)
@@ -38,3 +38,8 @@ if (de::contains(extSet, "GL_KHR_robustness"))
        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");
+}
index d13f8c9..77a5447 100644 (file)
@@ -83,6 +83,12 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS)
                        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
index fa14c1e..620b9f6 100644 (file)
@@ -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
index 3f72b2b..5aef054 100644 (file)
@@ -55,6 +55,13 @@ WindowBase::~WindowBase (void)
 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__);
index 8b39a19..0f00e72 100644 (file)
@@ -1461,6 +1461,29 @@ GLW_APICALL void GLW_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum a
 
 }
 
+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);
index a6c58fe..b6478b0 100644 (file)
@@ -176,6 +176,8 @@ gl->framebufferTexture1D                                            = glFramebufferTexture1D;
 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 (file)
index 0000000..f1fb2d5
--- /dev/null
@@ -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 (file)
index 0000000..81978a3
--- /dev/null
@@ -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
index 8ae8b4c..92cbd8f 100644 (file)
@@ -310,6 +310,7 @@ public:
                        // Signal completion.
                        packetIter->signal->increment();
                }
+               m_egl.releaseThread();
        }
 
 private:
index bc13aad..7d334c9 100644 (file)
@@ -717,7 +717,7 @@ void TestContext::render (void)
 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 @@ public:
 
 private:
        vector<TestContext*>    m_contexts;
+       const Library&                  m_egl;
        bool                                    m_isOk;
        string                                  m_errorString;
 
@@ -746,8 +747,9 @@ private:
                                        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 @@ void TestThread::run (void)
                m_isOk                  = false;
                m_errorString   = "Got unknown exception";
        }
+
+       m_egl.releaseThread();
 }
 
 class SharedRenderingPerfCase : public TestCase
@@ -879,7 +883,7 @@ void SharedRenderingPerfCase::deinit (void)
 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 @@ void createThreads (vector<TestThread*>& threads, int threadCount, int perThread
                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 @@ TestCase::IterateResult SharedRenderingPerfCase::iterate (void)
        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();
 
index 09deb06..bbf27cc 100644 (file)
@@ -194,8 +194,7 @@ void populateFrameTimes(FrameTimes* frameTimes, TimestampInfoMap& map, const std
 
 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 @@ void verifySingleFrame (const FrameTimes& frameTimes, tcu::ResultCollector& resu
        // 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
index aa1b666..fd01af3 100644 (file)
@@ -194,6 +194,15 @@ public:
 
        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);
index 21952a9..9a98245 100644 (file)
@@ -110,9 +110,6 @@ public:
                THREADSTATUS_NOT_STARTED = 0,
                THREADSTATUS_RUNNING,
                THREADSTATUS_READY,
-
-               THREADSTATUS_NOT_SUPPORTED,
-               THREADSTATUS_ERROR
        };
 
                                        TestThread      (MultiThreadedTest& test, int id);
@@ -149,18 +146,20 @@ public:
 
        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 @@ void TestThread::run (void)
 
        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 @@ void TestThread::run (void)
        {
                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 @@ bool MultiThreadedTest::execTest (TestThread& thread)
        }
        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 @@ bool MultiThreadedTest::execTest (TestThread& thread)
        }
        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 @@ bool MultiThreadedTest::execTest (TestThread& thread)
 
                throw;
        }
-
-       return isOk;
 }
 
 MultiThreadedTest::MultiThreadedTest (EglTestContext& eglTestCtx, const char* name, const char* description, int threadCount, deUint64 timeoutUs)
@@ -265,7 +257,8 @@ MultiThreadedTest::MultiThreadedTest (EglTestContext& eglTestCtx, const char* na
        , 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::deinit (void)
        }
 }
 
-void MultiThreadedTest::barrier (TestThread& thread)
+void MultiThreadedTest::barrier (void)
 {
        {
                const deInt32 waiters = deAtomicIncrement32(&m_barrierWaiters);
@@ -328,7 +321,7 @@ void MultiThreadedTest::barrier (TestThread& thread)
        }
 
        // 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 @@ TestCase::IterateResult MultiThreadedTest::iterate (void)
        {
                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 @@ TestCase::IterateResult MultiThreadedTest::iterate (void)
                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 @@ TestCase::IterateResult MultiThreadedTest::iterate (void)
                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 @@ bool MultiThreadedConfigTest::runThread (TestThread& thread)
        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 @@ bool MultiThreadedObjectTest::runThread (TestThread& thread)
                        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 @@ bool MultiThreadedObjectTest::runThread (TestThread& thread)
        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)
index a33da58..1d7da07 100644 (file)
@@ -384,31 +384,55 @@ void NegativeApiTests::init (void)
 
                        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(&notES1Config, 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(&notES2Config, 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 @@ void NegativeApiTests::init (void)
 
                        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;
                });
index 8b5b5c2..46b1780 100644 (file)
@@ -356,6 +356,37 @@ tcu::TextureFormat getColorFormat (const tcu::PixelFormat& colorBits)
 #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 @@ void SingleThreadRenderCase::executeForContexts (EGLDisplay display, EGLSurface
        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 @@ public:
                        // Signal completion.
                        packetIter->signal->increment();
                }
+               m_egl.releaseThread();
        }
 
 private:
@@ -902,9 +934,9 @@ void MultiThreadRenderCase::executeForContexts (EGLDisplay display, EGLSurface s
        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);
index 91e1a4c..fd8b3fa 100644 (file)
@@ -144,6 +144,7 @@ public:
                addChild(createGetFrameTimestampsTests  (m_eglTestCtx));
                addChild(createRobustnessTests                  (m_eglTestCtx));
                addChild(createWideColorTests                   (m_eglTestCtx));
+               addChild(createHdrColorTests                    (m_eglTestCtx));
        }
 };
 
index ffe3913..a3f64cb 100644 (file)
@@ -120,6 +120,8 @@ public:
                {
                        m_error = error;
                }
+
+               m_egl.releaseThread();
        }
 
 private:
index 20d4fff..b0d51a7 100644 (file)
@@ -107,6 +107,10 @@ public:
        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::checkSCRGBSupport (void)
 
 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 @@ void WideColorTest::checkFP16Support (void)
        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 @@ public:
        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 @@ protected:
 
 private:
        std::vector<EGLint>                                     m_attribList;
+       std::vector<EGLint>                                     m_testAttribList;
        EGLConfig                                                       m_eglConfig;
        EGLint                                                          m_surfaceType;
        EGLint                                                          m_componentType;
@@ -594,6 +632,18 @@ WideColorSurfaceTest::WideColorSurfaceTest (EglTestContext& eglTestCtx, const ch
        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 @@ void WideColorSurfaceTest::init (void)
                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,22 @@ void WideColorSurfaceTest::executeTest (void)
 
                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])) {
+                                       TCU_FAIL("Unable to set HDR metadata on surface");
+                               }
+                       }
+                       for (deUint32 i = 0; i < m_testAttribList.size(); i +=2)
+                       {
+                               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 +1421,190 @@ TestCaseGroup* createWideColorTests (EglTestContext& eglTestCtx)
        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(123.0),
+               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(234),
+               EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT, METADATA_SCALE(67),
+               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
index 5f58f58..d663db2 100644 (file)
@@ -32,6 +32,7 @@ namespace egl
 {
 
 TestCaseGroup* createWideColorTests (EglTestContext& eglTestCtx);
+TestCaseGroup* createHdrColorTests (EglTestContext& eglTestCtx);
 
 } // egl
 } // deqp
index 0c865a3..1a2dbbc 100644 (file)
@@ -413,7 +413,7 @@ void FlushFinishCase::analyzeResults (const std::vector<Sample>& samples, const
                }
        }
 
-       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");
 }
 
index 84894f9..4dfcb70 100644 (file)
@@ -393,6 +393,8 @@ void NegativeBufferApiTests::init (void)
                        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.");
index 5f8c1c5..21a439c 100644 (file)
@@ -101,7 +101,6 @@ protected:
        float                                   m_pointSize;
        float                                   m_lineWidth;
 
-private:
        glu::ShaderProgram*             m_shader;
 };
 
@@ -541,6 +540,135 @@ void PointCase::generatePoints    (int iteration, std::vector<tcu::Vec4>& outData,
                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 @@ void RasterizationTests::init (void)
                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");
index efe933c..46ef98d 100644 (file)
@@ -1523,6 +1523,90 @@ void ShaderOperatorTests::init (void)
                        }
                }
        }
+
+       // 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
index 555a154..21d84c5 100644 (file)
@@ -111,7 +111,7 @@ void ShaderStructCase::init (void)
                                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 @@ void UniformStructTests::init (void)
                        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}"
index f83fec6..c81cd94 100644 (file)
@@ -128,7 +128,7 @@ public:
        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 @@ Tex2DCompletenessCase::IterateResult Tex2DCompletenessCase::iterate (void)
 
        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 @@ public:
        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 @@ TexCubeCompletenessCase::IterateResult TexCubeCompletenessCase::iterate (void)
        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 @@ TexCubeCompletenessCase::IterateResult TexCubeCompletenessCase::iterate (void)
                        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 @@ public:
                                                                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 @@ Incomplete2DSizeCase::Incomplete2DSizeCase (tcu::TestContext& testCtx, glu::Rend
 {
 }
 
-void Incomplete2DSizeCase::createTexture (void)
+void Incomplete2DSizeCase::createTexture (GLuint texture)
 {
        static const char* const s_relaxingExtensions[] =
        {
@@ -269,8 +278,6 @@ void Incomplete2DSizeCase::createTexture (void)
        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 @@ public:
                                                        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 @@ Incomplete2DFormatCase::Incomplete2DFormatCase (tcu::TestContext& testCtx, glu::
 {
 }
 
-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 @@ public:
                                                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 @@ Incomplete2DMissingLevelCase::Incomplete2DMissingLevelCase (tcu::TestContext& te
 {
 }
 
-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 @@ public:
                                                                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 @@ Incomplete2DWrapModeCase::Incomplete2DWrapModeCase (tcu::TestContext& testCtx, g
 {
 }
 
-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 @@ public:
                                                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 @@ Complete2DExtraLevelCase::Complete2DExtraLevelCase (tcu::TestContext& testCtx, g
 {
 }
 
-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 @@ public:
                                                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 @@ Incomplete2DEmptyObjectCase::Incomplete2DEmptyObjectCase (tcu::TestContext& test
 {
 }
 
-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 @@ public:
                                                        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 @@ IncompleteCubeSizeCase::IncompleteCubeSizeCase (tcu::TestContext& testCtx, glu::
 {
 }
 
-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 @@ public:
                                                        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 @@ IncompleteCubeFormatCase::IncompleteCubeFormatCase (tcu::TestContext& testCtx, g
 {
 }
 
-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 @@ public:
                                                        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 @@ IncompleteCubeMissingLevelCase::IncompleteCubeMissingLevelCase (tcu::TestContext
 {
 }
 
-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 @@ public:
                                                                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 @@ IncompleteCubeWrapModeCase::IncompleteCubeWrapModeCase (tcu::TestContext& testCt
 {
 }
 
-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 @@ public:
                                                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 @@ CompleteCubeExtraLevelCase::CompleteCubeExtraLevelCase (tcu::TestContext& testCt
 {
 }
 
-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 @@ public:
                                                        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 @@ IncompleteCubeEmptyObjectCase::IncompleteCubeEmptyObjectCase (tcu::TestContext&
 {
 }
 
-void IncompleteCubeEmptyObjectCase::createTexture (void)
+void IncompleteCubeEmptyObjectCase::createTexture (GLuint texture)
 {
-       GLuint texture;
-       glGenTextures   (1, &texture);
        glPixelStorei   (GL_UNPACK_ALIGNMENT, 1);
        glBindTexture   (GL_TEXTURE_2D, texture);
 
index 4e2988f..f7627b9 100644 (file)
@@ -122,7 +122,10 @@ Texture2DSizeCase::IterateResult Texture2DSizeCase::iterate (void)
        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 @@ bool TextureCubeSizeCase::testFace (tcu::CubeFace face)
        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;
index 1adc70e..be74b19 100644 (file)
@@ -53,6 +53,8 @@ set(DEQP_GLES3_FUNCTIONAL_SRCS
        es3fFunctionalTests.hpp
        es3fLifetimeTests.cpp
        es3fLifetimeTests.hpp
+       es3fMultiviewTests.cpp
+       es3fMultiviewTests.hpp
        es3fPrerequisiteTests.cpp
        es3fPrerequisiteTests.hpp
        es3fRasterizationTests.cpp
index c29cdb8..c013a54 100644 (file)
@@ -21,6 +21,7 @@
  * \brief FBO multisample tests.
  *//*--------------------------------------------------------------------*/
 
+#include "es3fApiCase.hpp"
 #include "es3fFboMultisampleTests.hpp"
 #include "es3fFboTestCase.hpp"
 #include "es3fFboTestUtil.hpp"
@@ -246,6 +247,98 @@ private:
        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 @@ void FboMultisampleTests::init (void)
                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
index 05802a1..3c822ea 100644 (file)
@@ -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 @@ enum
 {
        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 @@ FlushFinishCase::CalibrationParams FlushFinishCase::calibrate (void)
        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 @@ FlushFinishCase::CalibrationParams FlushFinishCase::calibrate (void)
 
                for (;;)
                {
+                       deUint64 endTime;
                        deUint64 curDuration;
 
                        setShaderIterCount(curIterCount);
@@ -310,7 +315,8 @@ FlushFinishCase::CalibrationParams FlushFinishCase::calibrate (void)
                        {
                                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 @@ FlushFinishCase::CalibrationParams FlushFinishCase::calibrate (void)
                        }
                        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 @@ FlushFinishCase::CalibrationParams FlushFinishCase::calibrate (void)
 
                for (;;)
                {
+                       deUint64 endTime;
                        deUint64 curDuration;
 
                        render(curDrawCount); // \note Submit time is ignored
@@ -364,7 +376,8 @@ FlushFinishCase::CalibrationParams FlushFinishCase::calibrate (void)
                        {
                                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 @@ FlushFinishCase::CalibrationParams FlushFinishCase::calibrate (void)
                        }
                        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 @@ void FlushFinishCase::analyzeResults (const std::vector<Sample>& samples, const
                }
        }
 
-       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");
 }
 
index 5a57831..1e352da 100644 (file)
@@ -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 @@ public:
                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 (file)
index 0000000..fefa701
--- /dev/null
@@ -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 sampler2DArray uArrayTexture;\n"
+                                                                         "in highp vec3 vTexCoord;\n"
+                                                                         "void main() {\n"
+                                                                         "  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 (file)
index 0000000..e13bcba
--- /dev/null
@@ -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
index d51181e..e61bdc7 100644 (file)
@@ -22,6 +22,7 @@
  *//*--------------------------------------------------------------------*/
 
 #include "es3fShaderIndexingTests.hpp"
+#include "glsShaderLibrary.hpp"
 #include "glsShaderRenderCase.hpp"
 #include "gluShaderUtil.hpp"
 #include "tcuStringTemplate.hpp"
@@ -1131,6 +1132,13 @@ void ShaderIndexingTests::init (void)
                        }
                }
        }
+
+       {
+               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
index ad80a9a..66b9559 100644 (file)
@@ -1120,6 +1120,39 @@ void LocalStructTests::init (void)
                                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
index a085d64..6eeed5a 100644 (file)
@@ -123,7 +123,10 @@ Texture2DSizeCase::IterateResult Texture2DSizeCase::iterate (void)
        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 @@ bool TextureCubeSizeCase::testFace (tcu::CubeFace face)
        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;
index b4ebcac..5cbdb0c 100644 (file)
@@ -1509,8 +1509,8 @@ FboSRGBQueryCase::~FboSRGBQueryCase (void)
 void FboSRGBQueryCase::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 or a context version equal or higher than 3.2");
+       if (!m_context.getContextInfo().isExtensionSupported("GL_EXT_sRGB_write_control"))
+               TCU_THROW(NotSupportedError, "Test requires extension GL_EXT_sRGB_write_control");
 }
 
 void FboSRGBQueryCase::deinit (void)
@@ -1797,8 +1797,8 @@ FboSRGBUnsupportedEnumCase::~FboSRGBUnsupportedEnumCase (void)
 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)
index eb2e0ec..813a56a 100644 (file)
@@ -646,7 +646,7 @@ void invalid_maximum_work_group_sizes (NegativeTestContext& ctx)
        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
index da69f89..34171f6 100644 (file)
@@ -244,6 +244,13 @@ bool contains (const typename Traits<T>::IVal& ival, const T& value)
        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 @@ struct ScalarTraits
                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 @@ struct ContainerTraits
                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 @@ struct Traits<Void>
 {
        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 @@ protected:
        {
                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 @@ protected:
        }
 
        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 @@ protected:
 
                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 @@ public:
 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 @@ void PrecisionCase::testStatement (const Variables<In, Out>&     variables,
        // 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 @@ void PrecisionCase::testStatement (const Variables<In, Out>&    variables,
                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 @@ void PrecisionCase::testStatement (const Variables<In, Out>&      variables,
                {
                        MessageBuilder  builder = log().message();
 
-                       builder << (result ? "Passed" : "Failed") << " sample:\n";
+                       builder << (result ? "Passed" : failStr) << " sample:\n";
 
                        if (inCount > 0)
                        {
@@ -4686,7 +4778,7 @@ void PrecisionCase::testStatement (const Variables<In, Out>&      variables,
        }
        else
        {
-               log() << TestLog::Message << numErrors << "/" << numValues << " inputs failed."
+               log() << TestLog::Message << numErrors << "/" << numValues << " inputs failed or had quality warnings."
                          << TestLog::EndMessage;
        }
 }
index 919fece..15371b5 100644 (file)
@@ -74,7 +74,11 @@ EXTENSIONS                   = [
        "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"
index 5d5b804..34e11f1 100644 (file)
@@ -306,6 +306,7 @@ def genAndroidTestXml (mustpass):
        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:
index 6494273..cfb5120 100644 (file)
@@ -72,6 +72,8 @@ EXTENSIONS                    = [
        '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 (file)
index 0000000..f506112
--- /dev/null
@@ -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})