Merge vulkancts/vulkan-cts-1.0.2 into vulkancts/vulkan-cts-1.0-dev
Change-Id: I930987be3bb947d4fe51d9b931ed882f04e45a19
diff --git a/Android.mk b/Android.mk
index ea13fd3..cf95dd8 100644
--- a/Android.mk
+++ b/Android.mk
@@ -589,6 +589,7 @@
modules/gles31/functional/es31fNegativeShaderDirectiveTests.cpp \
modules/gles31/functional/es31fNegativeShaderFunctionTests.cpp \
modules/gles31/functional/es31fNegativeShaderImageLoadStoreTests.cpp \
+ modules/gles31/functional/es31fNegativeShaderStorageTests.cpp \
modules/gles31/functional/es31fNegativeStateApiTests.cpp \
modules/gles31/functional/es31fNegativeTestShared.cpp \
modules/gles31/functional/es31fNegativeTextureApiTests.cpp \
diff --git a/android/cts/master/egl-master.txt b/android/cts/master/egl-master.txt
index 74f28a9..60e5a14 100644
--- a/android/cts/master/egl-master.txt
+++ b/android/cts/master/egl-master.txt
@@ -2364,11 +2364,14 @@
dEQP-EGL.functional.multithread.single_window_context
dEQP-EGL.functional.multithread.pbuffer_single_window_context
dEQP-EGL.functional.get_proc_address.extension.egl_android_blob_cache
+dEQP-EGL.functional.get_proc_address.extension.egl_android_create_native_client_buffer
dEQP-EGL.functional.get_proc_address.extension.egl_android_native_fence_sync
+dEQP-EGL.functional.get_proc_address.extension.egl_android_presentation_time
dEQP-EGL.functional.get_proc_address.extension.egl_angle_query_surface_pointer
dEQP-EGL.functional.get_proc_address.extension.egl_ext_device_base
dEQP-EGL.functional.get_proc_address.extension.egl_ext_device_enumeration
dEQP-EGL.functional.get_proc_address.extension.egl_ext_device_query
+dEQP-EGL.functional.get_proc_address.extension.egl_ext_image_dma_buf_import_modifiers
dEQP-EGL.functional.get_proc_address.extension.egl_ext_output_base
dEQP-EGL.functional.get_proc_address.extension.egl_ext_platform_base
dEQP-EGL.functional.get_proc_address.extension.egl_ext_stream_consumer_egloutput
@@ -2384,6 +2387,7 @@
dEQP-EGL.functional.get_proc_address.extension.egl_khr_partial_update
dEQP-EGL.functional.get_proc_address.extension.egl_khr_reusable_sync
dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream
+dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream_attrib
dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream_consumer_gltexture
dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream_cross_process_fd
dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream_fifo
@@ -2398,6 +2402,7 @@
dEQP-EGL.functional.get_proc_address.extension.egl_nv_post_sub_buffer
dEQP-EGL.functional.get_proc_address.extension.egl_nv_stream_consumer_gltexture_yuv
dEQP-EGL.functional.get_proc_address.extension.egl_nv_stream_metadata
+dEQP-EGL.functional.get_proc_address.extension.egl_nv_stream_reset
dEQP-EGL.functional.get_proc_address.extension.egl_nv_stream_sync
dEQP-EGL.functional.get_proc_address.extension.egl_nv_sync
dEQP-EGL.functional.get_proc_address.extension.egl_nv_system_time
diff --git a/android/cts/master/gles31-master.txt b/android/cts/master/gles31-master.txt
index 8204cb8..7671af2 100644
--- a/android/cts/master/gles31-master.txt
+++ b/android/cts/master/gles31-master.txt
@@ -15875,7 +15875,6 @@
dEQP-GLES31.functional.separate_shader.validation.varying.mismatch_implicit_explicit_location_1
dEQP-GLES31.functional.separate_shader.validation.varying.mismatch_implicit_explicit_location_2
dEQP-GLES31.functional.separate_shader.validation.varying.mismatch_implicit_explicit_location_3
-dEQP-GLES31.functional.separate_shader.validation.varying.match_different_struct_names
dEQP-GLES31.functional.separate_shader.validation.varying.mismatch_struct_member_name
dEQP-GLES31.functional.separate_shader.validation.varying.mismatch_struct_member_type
dEQP-GLES31.functional.separate_shader.validation.varying.mismatch_struct_member_precision
@@ -15897,7 +15896,6 @@
dEQP-GLES31.functional.separate_shader.validation.io_blocks.mismatch_member_precision
dEQP-GLES31.functional.separate_shader.validation.io_blocks.mismatch_different_member_interpolation
dEQP-GLES31.functional.separate_shader.validation.io_blocks.mismatch_member_array_size
-dEQP-GLES31.functional.separate_shader.validation.io_blocks.match_different_member_struct_names
dEQP-GLES31.functional.separate_shader.validation.io_blocks.mismatch_member_struct_member_name
dEQP-GLES31.functional.separate_shader.validation.io_blocks.mismatch_member_struct_member_type
dEQP-GLES31.functional.separate_shader.validation.io_blocks.mismatch_member_struct_member_precision
@@ -16763,6 +16761,8 @@
dEQP-GLES31.functional.debug.negative_coverage.callbacks.precise.precise_as_function_argument
dEQP-GLES31.functional.debug.negative_coverage.callbacks.advanced_blend.blend_qualifier_mismatch
dEQP-GLES31.functional.debug.negative_coverage.callbacks.advanced_blend.attachment_advanced_equation
+dEQP-GLES31.functional.debug.negative_coverage.callbacks.shader_storage.block_number_limits
+dEQP-GLES31.functional.debug.negative_coverage.callbacks.shader_storage.max_combined_block_number_limit
dEQP-GLES31.functional.debug.negative_coverage.log.buffer.bind_buffer
dEQP-GLES31.functional.debug.negative_coverage.log.buffer.delete_buffers
dEQP-GLES31.functional.debug.negative_coverage.log.buffer.gen_buffers
@@ -17209,6 +17209,8 @@
dEQP-GLES31.functional.debug.negative_coverage.log.precise.precise_as_function_argument
dEQP-GLES31.functional.debug.negative_coverage.log.advanced_blend.blend_qualifier_mismatch
dEQP-GLES31.functional.debug.negative_coverage.log.advanced_blend.attachment_advanced_equation
+dEQP-GLES31.functional.debug.negative_coverage.log.shader_storage.block_number_limits
+dEQP-GLES31.functional.debug.negative_coverage.log.shader_storage.max_combined_block_number_limit
dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.bind_buffer
dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.delete_buffers
dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.gen_buffers
@@ -17653,6 +17655,8 @@
dEQP-GLES31.functional.debug.negative_coverage.get_error.precise.precise_as_function_argument
dEQP-GLES31.functional.debug.negative_coverage.get_error.advanced_blend.blend_qualifier_mismatch
dEQP-GLES31.functional.debug.negative_coverage.get_error.advanced_blend.attachment_advanced_equation
+dEQP-GLES31.functional.debug.negative_coverage.get_error.shader_storage.block_number_limits
+dEQP-GLES31.functional.debug.negative_coverage.get_error.shader_storage.max_combined_block_number_limit
dEQP-GLES31.functional.debug.externally_generated.application_messages
dEQP-GLES31.functional.debug.externally_generated.third_party_messages
dEQP-GLES31.functional.debug.externally_generated.push_pop_stack
diff --git a/android/cts/master/src/gles31-test-issues.txt b/android/cts/master/src/gles31-test-issues.txt
index 545ba85..f391068 100644
--- a/android/cts/master/src/gles31-test-issues.txt
+++ b/android/cts/master/src/gles31-test-issues.txt
@@ -49,3 +49,7 @@
dEQP-GLES31.functional.shaders.builtin_functions.precision.reflect.mediump_compute.vec3
dEQP-GLES31.functional.shaders.builtin_functions.precision.reflect.mediump_compute.vec4
dEQP-GLES31.functional.shaders.builtin_functions.precision.reflect.highp_compute.vec3
+
+# Bug 33457655
+dEQP-GLES31.functional.separate_shader.validation.varying.match_different_struct_names
+dEQP-GLES31.functional.separate_shader.validation.io_blocks.match_different_member_struct_names
diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt
index c718db7..fce11ff 100644
--- a/android/cts/master/vk-master.txt
+++ b/android/cts/master/vk-master.txt
@@ -18310,13 +18310,13 @@
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_b8g8r8a8_srgb_linear
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_a8b8g8r8_srgb_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_a8b8g8r8_srgb_pack32_linear
-dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d16_unorm_d16_unorm_nearest
-dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_x8_d24_unorm_pack32_x8_d24_unorm_pack32_nearest
-dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d32_sfloat_d32_sfloat_nearest
-dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_s8_uint_s8_uint_nearest
-dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d16_unorm_s8_uint_d16_unorm_s8_uint_nearest
-dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d24_unorm_s8_uint_d24_unorm_s8_uint_nearest
-dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d32_sfloat_s8_uint_d32_sfloat_s8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d16_unorm_d16_unorm_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.x8_d24_unorm_pack32_x8_d24_unorm_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d32_sfloat_d32_sfloat_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.s8_uint_s8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d16_unorm_s8_uint_d16_unorm_s8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d24_unorm_s8_uint_d24_unorm_s8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d32_sfloat_s8_uint_d32_sfloat_s8_uint_nearest
dEQP-VK.api.copy_and_blit.resolve_image.whole_2_bit
dEQP-VK.api.copy_and_blit.resolve_image.whole_4_bit
dEQP-VK.api.copy_and_blit.resolve_image.whole_8_bit
@@ -18347,6 +18347,42 @@
dEQP-VK.api.copy_and_blit.resolve_image.whole_array_image_16_bit
dEQP-VK.api.copy_and_blit.resolve_image.whole_array_image_32_bit
dEQP-VK.api.copy_and_blit.resolve_image.whole_array_image_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_64_bit
dEQP-VK.api.image_clearing.clear_color_image.1d_r4g4_unorm_pack8
dEQP-VK.api.image_clearing.clear_color_image.1d_r4g4b4a4_unorm_pack16
dEQP-VK.api.image_clearing.clear_color_image.1d_b4g4r4a4_unorm_pack16
@@ -19477,6 +19513,8 @@
dEQP-VK.api.granularity.in_render_pass.d16_unorm_s8_uint
dEQP-VK.api.granularity.in_render_pass.d24_unorm_s8_uint
dEQP-VK.api.granularity.in_render_pass.d32_sfloat_s8_uint
+dEQP-VK.api.get_memory_commitment.memory_commitment
+dEQP-VK.api.get_memory_commitment.memory_commitment_allocate_only
dEQP-VK.memory.allocation.basic.size_64.forward.count_1
dEQP-VK.memory.allocation.basic.size_64.forward.count_10
dEQP-VK.memory.allocation.basic.size_64.forward.count_100
@@ -89362,6 +89400,82 @@
dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_16
dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_32
dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_32
dEQP-VK.pipeline.vertex_input.single_attribute.float_as_r8_unorm_rate_vertex
dEQP-VK.pipeline.vertex_input.single_attribute.float_as_r8_unorm_rate_instance
dEQP-VK.pipeline.vertex_input.single_attribute.float_as_r8_snorm_rate_vertex
@@ -96976,6 +97090,10 @@
dEQP-VK.spirv_assembly.instruction.compute.opquantize.exact
dEQP-VK.spirv_assembly.instruction.compute.opquantize.rounded
dEQP-VK.spirv_assembly.instruction.compute.opfrem.all
+dEQP-VK.spirv_assembly.instruction.compute.opsrem.positive
+dEQP-VK.spirv_assembly.instruction.compute.opsrem.all
+dEQP-VK.spirv_assembly.instruction.compute.opsmod.positive
+dEQP-VK.spirv_assembly.instruction.compute.opsmod.all
dEQP-VK.spirv_assembly.instruction.compute.sconvert.int16_to_int32
dEQP-VK.spirv_assembly.instruction.compute.sconvert.int16_to_int64
dEQP-VK.spirv_assembly.instruction.compute.sconvert.int32_to_int64
@@ -97861,6 +97979,26 @@
dEQP-VK.spirv_assembly.instruction.graphics.frem.frem_tesse
dEQP-VK.spirv_assembly.instruction.graphics.frem.frem_geom
dEQP-VK.spirv_assembly.instruction.graphics.frem.frem_frag
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_vert
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_geom
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_frag
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_vert
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_geom
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_frag
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_vert
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_geom
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_frag
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_vert
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_geom
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_frag
dEQP-VK.glsl.arrays.constructor.float3_vertex
dEQP-VK.glsl.arrays.constructor.float3_fragment
dEQP-VK.glsl.arrays.constructor.float4_vertex
@@ -109222,6 +109360,42 @@
dEQP-VK.glsl.texture_functions.texture.isampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.texture.sparse_usampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.texture.usampler3d_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texture.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texture.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texture.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1d_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1d_bias_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isampler1d_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.usampler1d_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texture.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texture.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texture.usampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_bias_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isampler1darray_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.usampler1darray_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_float_vertex
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texture.isamplercubearray_fragment
+dEQP-VK.glsl.texture_functions.texture.usamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texture.usamplercubearray_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_bias_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isamplercubearray_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.usamplercubearray_bias_fragment
dEQP-VK.glsl.texture_functions.texture.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texture.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texture.sparse_sampler2dshadow_fragment
@@ -109238,6 +109412,13 @@
dEQP-VK.glsl.texture_functions.texture.sampler2darrayshadow_vertex
dEQP-VK.glsl.texture_functions.texture.sparse_sampler2darrayshadow_fragment
dEQP-VK.glsl.texture_functions.texture.sampler2darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1dshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darrayshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearrayshadow_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.textureoffset.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2d_fixed_fragment
@@ -109310,12 +109491,46 @@
dEQP-VK.glsl.texture_functions.textureoffset.isampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sparse_usampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.textureoffset.usampler3d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1darray_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1darray_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1darray_bias_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureoffset.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2dshadow_bias_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sampler2dshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler2darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler2darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1dshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darrayshadow_bias_fragment
dEQP-VK.glsl.texture_functions.textureproj.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureproj.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureproj.sampler2d_vec3_float_vertex
@@ -109352,9 +109567,36 @@
dEQP-VK.glsl.texture_functions.textureproj.sampler3d_bias_float_fragment
dEQP-VK.glsl.texture_functions.textureproj.isampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.textureproj.usampler3d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec2_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec2_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec4_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec4_bias_fragment
dEQP-VK.glsl.texture_functions.textureproj.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureproj.sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.textureproj.sampler2dshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1dshadow_bias_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler2d_vec3_float_vertex
@@ -109391,9 +109633,36 @@
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler3d_bias_float_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.isampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.usampler3d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec2_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec2_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec4_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec4_bias_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler2dshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1dshadow_bias_fragment
dEQP-VK.glsl.texture_functions.texturelod.sparse_sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturelod.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturelod.sparse_sampler2d_fixed_fragment
@@ -109458,10 +109727,38 @@
dEQP-VK.glsl.texture_functions.texturelod.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texturelod.sparse_usampler3d_fragment
dEQP-VK.glsl.texture_functions.texturelod.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texturelod.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturelod.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturelod.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturelod.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texturelod.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturelod.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturelod.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturelod.usampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturelod.samplercubearray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelod.samplercubearray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelod.samplercubearray_float_vertex
+dEQP-VK.glsl.texture_functions.texturelod.samplercubearray_float_fragment
+dEQP-VK.glsl.texture_functions.texturelod.isamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texturelod.isamplercubearray_fragment
+dEQP-VK.glsl.texture_functions.texturelod.usamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texturelod.usamplercubearray_fragment
dEQP-VK.glsl.texture_functions.texturelod.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturelod.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturelod.sparse_sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.texturelod.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darrayshadow_fragment
dEQP-VK.glsl.texture_functions.texturelodoffset.sparse_sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturelodoffset.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturelodoffset.sparse_sampler2d_fixed_fragment
@@ -109510,10 +109807,30 @@
dEQP-VK.glsl.texture_functions.texturelodoffset.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texturelodoffset.sparse_usampler3d_fragment
dEQP-VK.glsl.texture_functions.texturelodoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.usampler1darray_fragment
dEQP-VK.glsl.texture_functions.texturelodoffset.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturelodoffset.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturelodoffset.sparse_sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.texturelodoffset.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darrayshadow_fragment
dEQP-VK.glsl.texture_functions.textureprojlod.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojlod.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojlod.sampler2d_vec3_float_vertex
@@ -109538,8 +109855,26 @@
dEQP-VK.glsl.texture_functions.textureprojlod.isampler3d_fragment
dEQP-VK.glsl.texture_functions.textureprojlod.usampler3d_vertex
dEQP-VK.glsl.texture_functions.textureprojlod.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.usampler1d_vec4_fragment
dEQP-VK.glsl.texture_functions.textureprojlod.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureprojlod.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1dshadow_fragment
dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler2d_vec3_float_vertex
@@ -109564,8 +109899,26 @@
dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler3d_fragment
dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler3d_vertex
dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler1d_vec4_fragment
dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1dshadow_fragment
dEQP-VK.glsl.texture_functions.texturegrad.sparse_sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sparse_sampler2d_fixed_fragment
@@ -109630,6 +109983,30 @@
dEQP-VK.glsl.texture_functions.texturegrad.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sparse_usampler3d_fragment
dEQP-VK.glsl.texture_functions.texturegrad.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.usampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.samplercubearray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.samplercubearray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.samplercubearray_float_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.samplercubearray_float_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.isamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.isamplercubearray_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.usamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.usamplercubearray_fragment
dEQP-VK.glsl.texture_functions.texturegrad.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sparse_sampler2dshadow_fragment
@@ -109642,6 +110019,10 @@
dEQP-VK.glsl.texture_functions.texturegrad.sampler2darrayshadow_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sparse_sampler2darrayshadow_fragment
dEQP-VK.glsl.texture_functions.texturegrad.sampler2darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darrayshadow_fragment
dEQP-VK.glsl.texture_functions.texturegradoffset.sparse_sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.sparse_sampler2d_fixed_fragment
@@ -109690,6 +110071,22 @@
dEQP-VK.glsl.texture_functions.texturegradoffset.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.sparse_usampler3d_fragment
dEQP-VK.glsl.texture_functions.texturegradoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.usampler1darray_fragment
dEQP-VK.glsl.texture_functions.texturegradoffset.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.sparse_sampler2dshadow_fragment
@@ -109698,6 +110095,10 @@
dEQP-VK.glsl.texture_functions.texturegradoffset.sampler2darrayshadow_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.sparse_sampler2darrayshadow_fragment
dEQP-VK.glsl.texture_functions.texturegradoffset.sampler2darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darrayshadow_fragment
dEQP-VK.glsl.texture_functions.textureprojgrad.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojgrad.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojgrad.sampler2d_vec3_float_vertex
@@ -109722,8 +110123,26 @@
dEQP-VK.glsl.texture_functions.textureprojgrad.isampler3d_fragment
dEQP-VK.glsl.texture_functions.textureprojgrad.usampler3d_vertex
dEQP-VK.glsl.texture_functions.textureprojgrad.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.usampler1d_vec4_fragment
dEQP-VK.glsl.texture_functions.textureprojgrad.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureprojgrad.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1dshadow_fragment
dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler2d_vec3_float_vertex
@@ -109748,8 +110167,26 @@
dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler3d_fragment
dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler3d_vertex
dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler1d_vec4_fragment
dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1dshadow_fragment
dEQP-VK.glsl.texture_functions.texelfetch.sparse_sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texelfetch.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texelfetch.sparse_sampler2d_fixed_fragment
@@ -109798,6 +110235,22 @@
dEQP-VK.glsl.texture_functions.texelfetch.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texelfetch.sparse_usampler3d_fragment
dEQP-VK.glsl.texture_functions.texelfetch.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.usampler1darray_fragment
dEQP-VK.glsl.texture_functions.texelfetchoffset.sparse_sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texelfetchoffset.sparse_sampler2d_fixed_fragment
@@ -109846,6 +110299,22 @@
dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texelfetchoffset.sparse_usampler3d_fragment
dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler1darray_fragment
dEQP-VK.glsl.texture_functions.query.texturesize.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.query.texturesize.sampler2d_fixed_fragment
dEQP-VK.glsl.texture_functions.query.texturesize.sampler2d_float_vertex
diff --git a/android/cts/runner/src/com/drawelements/deqp/runner/DeqpTestRunner.java b/android/cts/runner/src/com/drawelements/deqp/runner/DeqpTestRunner.java
index cbcec16..465d2da 100644
--- a/android/cts/runner/src/com/drawelements/deqp/runner/DeqpTestRunner.java
+++ b/android/cts/runner/src/com/drawelements/deqp/runner/DeqpTestRunner.java
@@ -2116,6 +2116,7 @@
destination.mExcludeFilters = new ArrayList<>(source.mExcludeFilters);
destination.mAbi = source.mAbi;
destination.mLogData = source.mLogData;
+ destination.mCollectTestsOnly = source.mCollectTestsOnly;
}
/**
diff --git a/android/scripts/common.py b/android/scripts/common.py
index 16b5276..87aad8a 100644
--- a/android/scripts/common.py
+++ b/android/scripts/common.py
@@ -110,7 +110,7 @@
if retcode != 0:
raise Exception("Failed to execute '%s', got %d" % (str(args), retcode))
-def execArgsInDirectory (args, cwd, linePrefix=""):
+def execArgsInDirectory (args, cwd, linePrefix="", failOnNonZeroExit=True):
def readApplyPrefixAndPrint (source, prefix, sink):
while True:
@@ -125,7 +125,7 @@
stdoutJob.start()
stderrJob.start()
retcode = process.wait()
- if retcode != 0:
+ if failOnNonZeroExit and retcode != 0:
raise Exception("Failed to execute '%s', got %d" % (str(args), retcode))
def serialApply(f, argsList):
@@ -173,7 +173,7 @@
if proc.returncode != 0:
raise Exception("adb devices -l failed, got %d" % proc.returncode)
- ptrn = re.compile(r'^([a-zA-Z0-9:]+)\s+.*product:([^\s]+)\s+model:([^\s]+)\s+device:([^\s]+)')
+ ptrn = re.compile(r'^([a-zA-Z0-9\.:]+)\s+.*product:([^\s]+)\s+model:([^\s]+)\s+device:([^\s]+)')
devices = []
for line in stdout.splitlines()[1:]:
if len(line.strip()) == 0:
diff --git a/android/scripts/install.py b/android/scripts/install.py
index 6c9ff0f..5545cbb 100644
--- a/android/scripts/install.py
+++ b/android/scripts/install.py
@@ -33,7 +33,7 @@
common.execArgsInDirectory([common.ADB_BIN] + extraArgs + [
'uninstall',
'com.drawelements.deqp'
- ], buildRoot, printPrefix)
+ ], buildRoot, printPrefix, failOnNonZeroExit=False)
print printPrefix + "Remove complete\n",
print printPrefix + "Installing dEQP Package from %s...\n" %(buildRoot),
diff --git a/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl b/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
index 4e37982..e5c77d6 100644
--- a/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
@@ -1,147 +1,146 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*/
-virtual void destroyDevice (VkDevice device, const VkAllocationCallbacks* pAllocator) const;
-virtual void getDeviceQueue (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue) const;
-virtual VkResult queueSubmit (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const;
-virtual VkResult queueWaitIdle (VkQueue queue) const;
-virtual VkResult deviceWaitIdle (VkDevice device) const;
-virtual VkResult allocateMemory (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const;
-virtual void freeMemory (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult mapMemory (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const;
-virtual void unmapMemory (VkDevice device, VkDeviceMemory memory) const;
-virtual VkResult flushMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
-virtual VkResult invalidateMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
-virtual void getDeviceMemoryCommitment (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const;
-virtual VkResult bindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
-virtual VkResult bindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
-virtual void getBufferMemoryRequirements (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const;
-virtual void getImageMemoryRequirements (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const;
-virtual void getImageSparseMemoryRequirements (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const;
-virtual VkResult queueBindSparse (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const;
-virtual VkResult createFence (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
-virtual void destroyFence (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult resetFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences) const;
-virtual VkResult getFenceStatus (VkDevice device, VkFence fence) const;
-virtual VkResult waitForFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout) const;
-virtual VkResult createSemaphore (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const;
-virtual void destroySemaphore (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createEvent (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const;
-virtual void destroyEvent (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult getEventStatus (VkDevice device, VkEvent event) const;
-virtual VkResult setEvent (VkDevice device, VkEvent event) const;
-virtual VkResult resetEvent (VkDevice device, VkEvent event) const;
-virtual VkResult createQueryPool (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const;
-virtual void destroyQueryPool (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult getQueryPoolResults (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const;
-virtual VkResult createBuffer (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const;
-virtual void destroyBuffer (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createBufferView (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const;
-virtual void destroyBufferView (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createImage (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const;
-virtual void destroyImage (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const;
-virtual void getImageSubresourceLayout (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const;
-virtual VkResult createImageView (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const;
-virtual void destroyImageView (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createShaderModule (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) const;
-virtual void destroyShaderModule (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createPipelineCache (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const;
-virtual void destroyPipelineCache (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult getPipelineCacheData (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData) const;
-virtual VkResult mergePipelineCaches (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches) const;
-virtual VkResult createGraphicsPipelines (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
-virtual VkResult createComputePipelines (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
-virtual void destroyPipeline (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createPipelineLayout (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const;
-virtual void destroyPipelineLayout (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createSampler (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const;
-virtual void destroySampler (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createDescriptorSetLayout (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const;
-virtual void destroyDescriptorSetLayout (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createDescriptorPool (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const;
-virtual void destroyDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult resetDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const;
-virtual VkResult allocateDescriptorSets (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const;
-virtual VkResult freeDescriptorSets (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const;
-virtual void updateDescriptorSets (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const;
-virtual VkResult createFramebuffer (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const;
-virtual void destroyFramebuffer (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createRenderPass (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const;
-virtual void destroyRenderPass (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const;
-virtual void getRenderAreaGranularity (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const;
-virtual VkResult createCommandPool (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const;
-virtual void destroyCommandPool (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult resetCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const;
-virtual VkResult allocateCommandBuffers (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const;
-virtual void freeCommandBuffers (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const;
-virtual VkResult beginCommandBuffer (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const;
-virtual VkResult endCommandBuffer (VkCommandBuffer commandBuffer) const;
-virtual VkResult resetCommandBuffer (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const;
-virtual void cmdBindPipeline (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const;
-virtual void cmdSetViewport (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports) const;
-virtual void cmdSetScissor (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors) const;
-virtual void cmdSetLineWidth (VkCommandBuffer commandBuffer, float lineWidth) const;
-virtual void cmdSetDepthBias (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const;
-virtual void cmdSetBlendConstants (VkCommandBuffer commandBuffer, const float blendConstants[4]) const;
-virtual void cmdSetDepthBounds (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const;
-virtual void cmdSetStencilCompareMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask) const;
-virtual void cmdSetStencilWriteMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask) const;
-virtual void cmdSetStencilReference (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference) const;
-virtual void cmdBindDescriptorSets (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets) const;
-virtual void cmdBindIndexBuffer (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const;
-virtual void cmdBindVertexBuffers (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const;
-virtual void cmdDraw (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance) const;
-virtual void cmdDrawIndexed (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance) const;
-virtual void cmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const;
-virtual void cmdDrawIndexedIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const;
-virtual void cmdDispatch (VkCommandBuffer commandBuffer, deUint32 x, deUint32 y, deUint32 z) const;
-virtual void cmdDispatchIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const;
-virtual void cmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions) const;
-virtual void cmdCopyImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions) const;
-virtual void cmdBlitImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter) const;
-virtual void cmdCopyBufferToImage (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions) const;
-virtual void cmdCopyImageToBuffer (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions) const;
-virtual void cmdUpdateBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const;
-virtual void cmdFillBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data) const;
-virtual void cmdClearColorImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const;
-virtual void cmdClearDepthStencilImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const;
-virtual void cmdClearAttachments (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects) const;
-virtual void cmdResolveImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions) const;
-virtual void cmdSetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const;
-virtual void cmdResetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const;
-virtual void cmdWaitEvents (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const;
-virtual void cmdPipelineBarrier (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const;
-virtual void cmdBeginQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags) const;
-virtual void cmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query) const;
-virtual void cmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount) const;
-virtual void cmdWriteTimestamp (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query) const;
-virtual void cmdCopyQueryPoolResults (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const;
-virtual void cmdPushConstants (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues) const;
-virtual void cmdBeginRenderPass (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const;
-virtual void cmdNextSubpass (VkCommandBuffer commandBuffer, VkSubpassContents contents) const;
-virtual void cmdEndRenderPass (VkCommandBuffer commandBuffer) const;
-virtual void cmdExecuteCommands (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const;
-virtual VkResult createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const;
-virtual void destroySwapchainKHR (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages) const;
-virtual VkResult acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const;
-virtual VkResult queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const;
-virtual VkResult createSharedSwapchainsKHR (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const;
-virtual void trimCommandPoolKHR (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const;
-virtual VkResult debugMarkerSetObjectTagEXT (VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo) const;
-virtual VkResult debugMarkerSetObjectNameEXT (VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo) const;
-virtual void cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
-virtual void cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer) const;
-virtual void cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
-virtual void cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
-virtual void cmdDrawIndexedIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
-virtual VkResult getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const;
-virtual void cmdProcessCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const;
-virtual void cmdReserveSpaceForCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const;
-virtual VkResult createIndirectCommandsLayoutNVX (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const;
-virtual void destroyIndirectCommandsLayoutNVX (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult createObjectTableNVX (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const;
-virtual void destroyObjectTableNVX (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult registerObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const;
-virtual VkResult unregisterObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const;
-virtual void getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const;
+virtual void destroyDevice (VkDevice device, const VkAllocationCallbacks* pAllocator) const;
+virtual void getDeviceQueue (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue) const;
+virtual VkResult queueSubmit (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const;
+virtual VkResult queueWaitIdle (VkQueue queue) const;
+virtual VkResult deviceWaitIdle (VkDevice device) const;
+virtual VkResult allocateMemory (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const;
+virtual void freeMemory (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult mapMemory (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const;
+virtual void unmapMemory (VkDevice device, VkDeviceMemory memory) const;
+virtual VkResult flushMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
+virtual VkResult invalidateMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
+virtual void getDeviceMemoryCommitment (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const;
+virtual VkResult bindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
+virtual VkResult bindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
+virtual void getBufferMemoryRequirements (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const;
+virtual void getImageMemoryRequirements (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const;
+virtual void getImageSparseMemoryRequirements (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const;
+virtual VkResult queueBindSparse (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const;
+virtual VkResult createFence (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
+virtual void destroyFence (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult resetFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences) const;
+virtual VkResult getFenceStatus (VkDevice device, VkFence fence) const;
+virtual VkResult waitForFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout) const;
+virtual VkResult createSemaphore (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const;
+virtual void destroySemaphore (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createEvent (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const;
+virtual void destroyEvent (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult getEventStatus (VkDevice device, VkEvent event) const;
+virtual VkResult setEvent (VkDevice device, VkEvent event) const;
+virtual VkResult resetEvent (VkDevice device, VkEvent event) const;
+virtual VkResult createQueryPool (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const;
+virtual void destroyQueryPool (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult getQueryPoolResults (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const;
+virtual VkResult createBuffer (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const;
+virtual void destroyBuffer (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createBufferView (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const;
+virtual void destroyBufferView (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createImage (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const;
+virtual void destroyImage (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const;
+virtual void getImageSubresourceLayout (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const;
+virtual VkResult createImageView (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const;
+virtual void destroyImageView (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createShaderModule (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) const;
+virtual void destroyShaderModule (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createPipelineCache (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const;
+virtual void destroyPipelineCache (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult getPipelineCacheData (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData) const;
+virtual VkResult mergePipelineCaches (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches) const;
+virtual VkResult createGraphicsPipelines (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
+virtual VkResult createComputePipelines (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
+virtual void destroyPipeline (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createPipelineLayout (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const;
+virtual void destroyPipelineLayout (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createSampler (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const;
+virtual void destroySampler (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createDescriptorSetLayout (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const;
+virtual void destroyDescriptorSetLayout (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createDescriptorPool (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const;
+virtual void destroyDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult resetDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const;
+virtual VkResult allocateDescriptorSets (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const;
+virtual VkResult freeDescriptorSets (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const;
+virtual void updateDescriptorSets (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const;
+virtual VkResult createFramebuffer (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const;
+virtual void destroyFramebuffer (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createRenderPass (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const;
+virtual void destroyRenderPass (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const;
+virtual void getRenderAreaGranularity (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const;
+virtual VkResult createCommandPool (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const;
+virtual void destroyCommandPool (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult resetCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const;
+virtual VkResult allocateCommandBuffers (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const;
+virtual void freeCommandBuffers (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const;
+virtual VkResult beginCommandBuffer (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const;
+virtual VkResult endCommandBuffer (VkCommandBuffer commandBuffer) const;
+virtual VkResult resetCommandBuffer (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const;
+virtual void cmdBindPipeline (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const;
+virtual void cmdSetViewport (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports) const;
+virtual void cmdSetScissor (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors) const;
+virtual void cmdSetLineWidth (VkCommandBuffer commandBuffer, float lineWidth) const;
+virtual void cmdSetDepthBias (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const;
+virtual void cmdSetBlendConstants (VkCommandBuffer commandBuffer, const float blendConstants[4]) const;
+virtual void cmdSetDepthBounds (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const;
+virtual void cmdSetStencilCompareMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask) const;
+virtual void cmdSetStencilWriteMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask) const;
+virtual void cmdSetStencilReference (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference) const;
+virtual void cmdBindDescriptorSets (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets) const;
+virtual void cmdBindIndexBuffer (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const;
+virtual void cmdBindVertexBuffers (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const;
+virtual void cmdDraw (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance) const;
+virtual void cmdDrawIndexed (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance) const;
+virtual void cmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const;
+virtual void cmdDrawIndexedIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const;
+virtual void cmdDispatch (VkCommandBuffer commandBuffer, deUint32 x, deUint32 y, deUint32 z) const;
+virtual void cmdDispatchIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const;
+virtual void cmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions) const;
+virtual void cmdCopyImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions) const;
+virtual void cmdBlitImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter) const;
+virtual void cmdCopyBufferToImage (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions) const;
+virtual void cmdCopyImageToBuffer (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions) const;
+virtual void cmdUpdateBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const;
+virtual void cmdFillBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data) const;
+virtual void cmdClearColorImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const;
+virtual void cmdClearDepthStencilImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const;
+virtual void cmdClearAttachments (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects) const;
+virtual void cmdResolveImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions) const;
+virtual void cmdSetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const;
+virtual void cmdResetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const;
+virtual void cmdWaitEvents (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const;
+virtual void cmdPipelineBarrier (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const;
+virtual void cmdBeginQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags) const;
+virtual void cmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query) const;
+virtual void cmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount) const;
+virtual void cmdWriteTimestamp (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query) const;
+virtual void cmdCopyQueryPoolResults (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const;
+virtual void cmdPushConstants (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues) const;
+virtual void cmdBeginRenderPass (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const;
+virtual void cmdNextSubpass (VkCommandBuffer commandBuffer, VkSubpassContents contents) const;
+virtual void cmdEndRenderPass (VkCommandBuffer commandBuffer) const;
+virtual void cmdExecuteCommands (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const;
+virtual VkResult createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const;
+virtual void destroySwapchainKHR (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages) const;
+virtual VkResult acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const;
+virtual VkResult queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const;
+virtual VkResult createSharedSwapchainsKHR (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const;
+virtual void trimCommandPoolKHR (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const;
+virtual VkResult debugMarkerSetObjectTagEXT (VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo) const;
+virtual VkResult debugMarkerSetObjectNameEXT (VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo) const;
+virtual void cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
+virtual void cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer) const;
+virtual void cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
+virtual void cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
+virtual void cmdDrawIndexedIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
+virtual VkResult getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const;
+virtual void cmdProcessCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const;
+virtual void cmdReserveSpaceForCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const;
+virtual VkResult createIndirectCommandsLayoutNVX (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const;
+virtual void destroyIndirectCommandsLayoutNVX (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult createObjectTableNVX (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const;
+virtual void destroyObjectTableNVX (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult registerObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const;
+virtual VkResult unregisterObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const;
diff --git a/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl b/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
index a4e8a08..cb7229f 100644
--- a/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
@@ -48,3 +48,4 @@
virtual void destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const;
virtual void debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const;
virtual VkResult getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const;
+virtual void getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const;
diff --git a/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl b/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
index ed7bb99..990ce9b 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
@@ -716,8 +716,3 @@
{
return m_vk.unregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
}
-
-void DeviceDriver::getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const
-{
- m_vk.getPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
-}
diff --git a/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
index 49685d9..42c20a9 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
@@ -1,147 +1,146 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*/
-DestroyDeviceFunc destroyDevice;
-GetDeviceQueueFunc getDeviceQueue;
-QueueSubmitFunc queueSubmit;
-QueueWaitIdleFunc queueWaitIdle;
-DeviceWaitIdleFunc deviceWaitIdle;
-AllocateMemoryFunc allocateMemory;
-FreeMemoryFunc freeMemory;
-MapMemoryFunc mapMemory;
-UnmapMemoryFunc unmapMemory;
-FlushMappedMemoryRangesFunc flushMappedMemoryRanges;
-InvalidateMappedMemoryRangesFunc invalidateMappedMemoryRanges;
-GetDeviceMemoryCommitmentFunc getDeviceMemoryCommitment;
-BindBufferMemoryFunc bindBufferMemory;
-BindImageMemoryFunc bindImageMemory;
-GetBufferMemoryRequirementsFunc getBufferMemoryRequirements;
-GetImageMemoryRequirementsFunc getImageMemoryRequirements;
-GetImageSparseMemoryRequirementsFunc getImageSparseMemoryRequirements;
-QueueBindSparseFunc queueBindSparse;
-CreateFenceFunc createFence;
-DestroyFenceFunc destroyFence;
-ResetFencesFunc resetFences;
-GetFenceStatusFunc getFenceStatus;
-WaitForFencesFunc waitForFences;
-CreateSemaphoreFunc createSemaphore;
-DestroySemaphoreFunc destroySemaphore;
-CreateEventFunc createEvent;
-DestroyEventFunc destroyEvent;
-GetEventStatusFunc getEventStatus;
-SetEventFunc setEvent;
-ResetEventFunc resetEvent;
-CreateQueryPoolFunc createQueryPool;
-DestroyQueryPoolFunc destroyQueryPool;
-GetQueryPoolResultsFunc getQueryPoolResults;
-CreateBufferFunc createBuffer;
-DestroyBufferFunc destroyBuffer;
-CreateBufferViewFunc createBufferView;
-DestroyBufferViewFunc destroyBufferView;
-CreateImageFunc createImage;
-DestroyImageFunc destroyImage;
-GetImageSubresourceLayoutFunc getImageSubresourceLayout;
-CreateImageViewFunc createImageView;
-DestroyImageViewFunc destroyImageView;
-CreateShaderModuleFunc createShaderModule;
-DestroyShaderModuleFunc destroyShaderModule;
-CreatePipelineCacheFunc createPipelineCache;
-DestroyPipelineCacheFunc destroyPipelineCache;
-GetPipelineCacheDataFunc getPipelineCacheData;
-MergePipelineCachesFunc mergePipelineCaches;
-CreateGraphicsPipelinesFunc createGraphicsPipelines;
-CreateComputePipelinesFunc createComputePipelines;
-DestroyPipelineFunc destroyPipeline;
-CreatePipelineLayoutFunc createPipelineLayout;
-DestroyPipelineLayoutFunc destroyPipelineLayout;
-CreateSamplerFunc createSampler;
-DestroySamplerFunc destroySampler;
-CreateDescriptorSetLayoutFunc createDescriptorSetLayout;
-DestroyDescriptorSetLayoutFunc destroyDescriptorSetLayout;
-CreateDescriptorPoolFunc createDescriptorPool;
-DestroyDescriptorPoolFunc destroyDescriptorPool;
-ResetDescriptorPoolFunc resetDescriptorPool;
-AllocateDescriptorSetsFunc allocateDescriptorSets;
-FreeDescriptorSetsFunc freeDescriptorSets;
-UpdateDescriptorSetsFunc updateDescriptorSets;
-CreateFramebufferFunc createFramebuffer;
-DestroyFramebufferFunc destroyFramebuffer;
-CreateRenderPassFunc createRenderPass;
-DestroyRenderPassFunc destroyRenderPass;
-GetRenderAreaGranularityFunc getRenderAreaGranularity;
-CreateCommandPoolFunc createCommandPool;
-DestroyCommandPoolFunc destroyCommandPool;
-ResetCommandPoolFunc resetCommandPool;
-AllocateCommandBuffersFunc allocateCommandBuffers;
-FreeCommandBuffersFunc freeCommandBuffers;
-BeginCommandBufferFunc beginCommandBuffer;
-EndCommandBufferFunc endCommandBuffer;
-ResetCommandBufferFunc resetCommandBuffer;
-CmdBindPipelineFunc cmdBindPipeline;
-CmdSetViewportFunc cmdSetViewport;
-CmdSetScissorFunc cmdSetScissor;
-CmdSetLineWidthFunc cmdSetLineWidth;
-CmdSetDepthBiasFunc cmdSetDepthBias;
-CmdSetBlendConstantsFunc cmdSetBlendConstants;
-CmdSetDepthBoundsFunc cmdSetDepthBounds;
-CmdSetStencilCompareMaskFunc cmdSetStencilCompareMask;
-CmdSetStencilWriteMaskFunc cmdSetStencilWriteMask;
-CmdSetStencilReferenceFunc cmdSetStencilReference;
-CmdBindDescriptorSetsFunc cmdBindDescriptorSets;
-CmdBindIndexBufferFunc cmdBindIndexBuffer;
-CmdBindVertexBuffersFunc cmdBindVertexBuffers;
-CmdDrawFunc cmdDraw;
-CmdDrawIndexedFunc cmdDrawIndexed;
-CmdDrawIndirectFunc cmdDrawIndirect;
-CmdDrawIndexedIndirectFunc cmdDrawIndexedIndirect;
-CmdDispatchFunc cmdDispatch;
-CmdDispatchIndirectFunc cmdDispatchIndirect;
-CmdCopyBufferFunc cmdCopyBuffer;
-CmdCopyImageFunc cmdCopyImage;
-CmdBlitImageFunc cmdBlitImage;
-CmdCopyBufferToImageFunc cmdCopyBufferToImage;
-CmdCopyImageToBufferFunc cmdCopyImageToBuffer;
-CmdUpdateBufferFunc cmdUpdateBuffer;
-CmdFillBufferFunc cmdFillBuffer;
-CmdClearColorImageFunc cmdClearColorImage;
-CmdClearDepthStencilImageFunc cmdClearDepthStencilImage;
-CmdClearAttachmentsFunc cmdClearAttachments;
-CmdResolveImageFunc cmdResolveImage;
-CmdSetEventFunc cmdSetEvent;
-CmdResetEventFunc cmdResetEvent;
-CmdWaitEventsFunc cmdWaitEvents;
-CmdPipelineBarrierFunc cmdPipelineBarrier;
-CmdBeginQueryFunc cmdBeginQuery;
-CmdEndQueryFunc cmdEndQuery;
-CmdResetQueryPoolFunc cmdResetQueryPool;
-CmdWriteTimestampFunc cmdWriteTimestamp;
-CmdCopyQueryPoolResultsFunc cmdCopyQueryPoolResults;
-CmdPushConstantsFunc cmdPushConstants;
-CmdBeginRenderPassFunc cmdBeginRenderPass;
-CmdNextSubpassFunc cmdNextSubpass;
-CmdEndRenderPassFunc cmdEndRenderPass;
-CmdExecuteCommandsFunc cmdExecuteCommands;
-CreateSwapchainKHRFunc createSwapchainKHR;
-DestroySwapchainKHRFunc destroySwapchainKHR;
-GetSwapchainImagesKHRFunc getSwapchainImagesKHR;
-AcquireNextImageKHRFunc acquireNextImageKHR;
-QueuePresentKHRFunc queuePresentKHR;
-CreateSharedSwapchainsKHRFunc createSharedSwapchainsKHR;
-TrimCommandPoolKHRFunc trimCommandPoolKHR;
-DebugMarkerSetObjectTagEXTFunc debugMarkerSetObjectTagEXT;
-DebugMarkerSetObjectNameEXTFunc debugMarkerSetObjectNameEXT;
-CmdDebugMarkerBeginEXTFunc cmdDebugMarkerBeginEXT;
-CmdDebugMarkerEndEXTFunc cmdDebugMarkerEndEXT;
-CmdDebugMarkerInsertEXTFunc cmdDebugMarkerInsertEXT;
-CmdDrawIndirectCountAMDFunc cmdDrawIndirectCountAMD;
-CmdDrawIndexedIndirectCountAMDFunc cmdDrawIndexedIndirectCountAMD;
-GetMemoryWin32HandleNVFunc getMemoryWin32HandleNV;
-CmdProcessCommandsNVXFunc cmdProcessCommandsNVX;
-CmdReserveSpaceForCommandsNVXFunc cmdReserveSpaceForCommandsNVX;
-CreateIndirectCommandsLayoutNVXFunc createIndirectCommandsLayoutNVX;
-DestroyIndirectCommandsLayoutNVXFunc destroyIndirectCommandsLayoutNVX;
-CreateObjectTableNVXFunc createObjectTableNVX;
-DestroyObjectTableNVXFunc destroyObjectTableNVX;
-RegisterObjectsNVXFunc registerObjectsNVX;
-UnregisterObjectsNVXFunc unregisterObjectsNVX;
-GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc getPhysicalDeviceGeneratedCommandsPropertiesNVX;
+DestroyDeviceFunc destroyDevice;
+GetDeviceQueueFunc getDeviceQueue;
+QueueSubmitFunc queueSubmit;
+QueueWaitIdleFunc queueWaitIdle;
+DeviceWaitIdleFunc deviceWaitIdle;
+AllocateMemoryFunc allocateMemory;
+FreeMemoryFunc freeMemory;
+MapMemoryFunc mapMemory;
+UnmapMemoryFunc unmapMemory;
+FlushMappedMemoryRangesFunc flushMappedMemoryRanges;
+InvalidateMappedMemoryRangesFunc invalidateMappedMemoryRanges;
+GetDeviceMemoryCommitmentFunc getDeviceMemoryCommitment;
+BindBufferMemoryFunc bindBufferMemory;
+BindImageMemoryFunc bindImageMemory;
+GetBufferMemoryRequirementsFunc getBufferMemoryRequirements;
+GetImageMemoryRequirementsFunc getImageMemoryRequirements;
+GetImageSparseMemoryRequirementsFunc getImageSparseMemoryRequirements;
+QueueBindSparseFunc queueBindSparse;
+CreateFenceFunc createFence;
+DestroyFenceFunc destroyFence;
+ResetFencesFunc resetFences;
+GetFenceStatusFunc getFenceStatus;
+WaitForFencesFunc waitForFences;
+CreateSemaphoreFunc createSemaphore;
+DestroySemaphoreFunc destroySemaphore;
+CreateEventFunc createEvent;
+DestroyEventFunc destroyEvent;
+GetEventStatusFunc getEventStatus;
+SetEventFunc setEvent;
+ResetEventFunc resetEvent;
+CreateQueryPoolFunc createQueryPool;
+DestroyQueryPoolFunc destroyQueryPool;
+GetQueryPoolResultsFunc getQueryPoolResults;
+CreateBufferFunc createBuffer;
+DestroyBufferFunc destroyBuffer;
+CreateBufferViewFunc createBufferView;
+DestroyBufferViewFunc destroyBufferView;
+CreateImageFunc createImage;
+DestroyImageFunc destroyImage;
+GetImageSubresourceLayoutFunc getImageSubresourceLayout;
+CreateImageViewFunc createImageView;
+DestroyImageViewFunc destroyImageView;
+CreateShaderModuleFunc createShaderModule;
+DestroyShaderModuleFunc destroyShaderModule;
+CreatePipelineCacheFunc createPipelineCache;
+DestroyPipelineCacheFunc destroyPipelineCache;
+GetPipelineCacheDataFunc getPipelineCacheData;
+MergePipelineCachesFunc mergePipelineCaches;
+CreateGraphicsPipelinesFunc createGraphicsPipelines;
+CreateComputePipelinesFunc createComputePipelines;
+DestroyPipelineFunc destroyPipeline;
+CreatePipelineLayoutFunc createPipelineLayout;
+DestroyPipelineLayoutFunc destroyPipelineLayout;
+CreateSamplerFunc createSampler;
+DestroySamplerFunc destroySampler;
+CreateDescriptorSetLayoutFunc createDescriptorSetLayout;
+DestroyDescriptorSetLayoutFunc destroyDescriptorSetLayout;
+CreateDescriptorPoolFunc createDescriptorPool;
+DestroyDescriptorPoolFunc destroyDescriptorPool;
+ResetDescriptorPoolFunc resetDescriptorPool;
+AllocateDescriptorSetsFunc allocateDescriptorSets;
+FreeDescriptorSetsFunc freeDescriptorSets;
+UpdateDescriptorSetsFunc updateDescriptorSets;
+CreateFramebufferFunc createFramebuffer;
+DestroyFramebufferFunc destroyFramebuffer;
+CreateRenderPassFunc createRenderPass;
+DestroyRenderPassFunc destroyRenderPass;
+GetRenderAreaGranularityFunc getRenderAreaGranularity;
+CreateCommandPoolFunc createCommandPool;
+DestroyCommandPoolFunc destroyCommandPool;
+ResetCommandPoolFunc resetCommandPool;
+AllocateCommandBuffersFunc allocateCommandBuffers;
+FreeCommandBuffersFunc freeCommandBuffers;
+BeginCommandBufferFunc beginCommandBuffer;
+EndCommandBufferFunc endCommandBuffer;
+ResetCommandBufferFunc resetCommandBuffer;
+CmdBindPipelineFunc cmdBindPipeline;
+CmdSetViewportFunc cmdSetViewport;
+CmdSetScissorFunc cmdSetScissor;
+CmdSetLineWidthFunc cmdSetLineWidth;
+CmdSetDepthBiasFunc cmdSetDepthBias;
+CmdSetBlendConstantsFunc cmdSetBlendConstants;
+CmdSetDepthBoundsFunc cmdSetDepthBounds;
+CmdSetStencilCompareMaskFunc cmdSetStencilCompareMask;
+CmdSetStencilWriteMaskFunc cmdSetStencilWriteMask;
+CmdSetStencilReferenceFunc cmdSetStencilReference;
+CmdBindDescriptorSetsFunc cmdBindDescriptorSets;
+CmdBindIndexBufferFunc cmdBindIndexBuffer;
+CmdBindVertexBuffersFunc cmdBindVertexBuffers;
+CmdDrawFunc cmdDraw;
+CmdDrawIndexedFunc cmdDrawIndexed;
+CmdDrawIndirectFunc cmdDrawIndirect;
+CmdDrawIndexedIndirectFunc cmdDrawIndexedIndirect;
+CmdDispatchFunc cmdDispatch;
+CmdDispatchIndirectFunc cmdDispatchIndirect;
+CmdCopyBufferFunc cmdCopyBuffer;
+CmdCopyImageFunc cmdCopyImage;
+CmdBlitImageFunc cmdBlitImage;
+CmdCopyBufferToImageFunc cmdCopyBufferToImage;
+CmdCopyImageToBufferFunc cmdCopyImageToBuffer;
+CmdUpdateBufferFunc cmdUpdateBuffer;
+CmdFillBufferFunc cmdFillBuffer;
+CmdClearColorImageFunc cmdClearColorImage;
+CmdClearDepthStencilImageFunc cmdClearDepthStencilImage;
+CmdClearAttachmentsFunc cmdClearAttachments;
+CmdResolveImageFunc cmdResolveImage;
+CmdSetEventFunc cmdSetEvent;
+CmdResetEventFunc cmdResetEvent;
+CmdWaitEventsFunc cmdWaitEvents;
+CmdPipelineBarrierFunc cmdPipelineBarrier;
+CmdBeginQueryFunc cmdBeginQuery;
+CmdEndQueryFunc cmdEndQuery;
+CmdResetQueryPoolFunc cmdResetQueryPool;
+CmdWriteTimestampFunc cmdWriteTimestamp;
+CmdCopyQueryPoolResultsFunc cmdCopyQueryPoolResults;
+CmdPushConstantsFunc cmdPushConstants;
+CmdBeginRenderPassFunc cmdBeginRenderPass;
+CmdNextSubpassFunc cmdNextSubpass;
+CmdEndRenderPassFunc cmdEndRenderPass;
+CmdExecuteCommandsFunc cmdExecuteCommands;
+CreateSwapchainKHRFunc createSwapchainKHR;
+DestroySwapchainKHRFunc destroySwapchainKHR;
+GetSwapchainImagesKHRFunc getSwapchainImagesKHR;
+AcquireNextImageKHRFunc acquireNextImageKHR;
+QueuePresentKHRFunc queuePresentKHR;
+CreateSharedSwapchainsKHRFunc createSharedSwapchainsKHR;
+TrimCommandPoolKHRFunc trimCommandPoolKHR;
+DebugMarkerSetObjectTagEXTFunc debugMarkerSetObjectTagEXT;
+DebugMarkerSetObjectNameEXTFunc debugMarkerSetObjectNameEXT;
+CmdDebugMarkerBeginEXTFunc cmdDebugMarkerBeginEXT;
+CmdDebugMarkerEndEXTFunc cmdDebugMarkerEndEXT;
+CmdDebugMarkerInsertEXTFunc cmdDebugMarkerInsertEXT;
+CmdDrawIndirectCountAMDFunc cmdDrawIndirectCountAMD;
+CmdDrawIndexedIndirectCountAMDFunc cmdDrawIndexedIndirectCountAMD;
+GetMemoryWin32HandleNVFunc getMemoryWin32HandleNV;
+CmdProcessCommandsNVXFunc cmdProcessCommandsNVX;
+CmdReserveSpaceForCommandsNVXFunc cmdReserveSpaceForCommandsNVX;
+CreateIndirectCommandsLayoutNVXFunc createIndirectCommandsLayoutNVX;
+DestroyIndirectCommandsLayoutNVXFunc destroyIndirectCommandsLayoutNVX;
+CreateObjectTableNVXFunc createObjectTableNVX;
+DestroyObjectTableNVXFunc destroyObjectTableNVX;
+RegisterObjectsNVXFunc registerObjectsNVX;
+UnregisterObjectsNVXFunc unregisterObjectsNVX;
diff --git a/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
index 2c0ff8e..1c3b362 100644
--- a/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
@@ -1,147 +1,146 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*/
-m_vk.destroyDevice = (DestroyDeviceFunc) GET_PROC_ADDR("vkDestroyDevice");
-m_vk.getDeviceQueue = (GetDeviceQueueFunc) GET_PROC_ADDR("vkGetDeviceQueue");
-m_vk.queueSubmit = (QueueSubmitFunc) GET_PROC_ADDR("vkQueueSubmit");
-m_vk.queueWaitIdle = (QueueWaitIdleFunc) GET_PROC_ADDR("vkQueueWaitIdle");
-m_vk.deviceWaitIdle = (DeviceWaitIdleFunc) GET_PROC_ADDR("vkDeviceWaitIdle");
-m_vk.allocateMemory = (AllocateMemoryFunc) GET_PROC_ADDR("vkAllocateMemory");
-m_vk.freeMemory = (FreeMemoryFunc) GET_PROC_ADDR("vkFreeMemory");
-m_vk.mapMemory = (MapMemoryFunc) GET_PROC_ADDR("vkMapMemory");
-m_vk.unmapMemory = (UnmapMemoryFunc) GET_PROC_ADDR("vkUnmapMemory");
-m_vk.flushMappedMemoryRanges = (FlushMappedMemoryRangesFunc) GET_PROC_ADDR("vkFlushMappedMemoryRanges");
-m_vk.invalidateMappedMemoryRanges = (InvalidateMappedMemoryRangesFunc) GET_PROC_ADDR("vkInvalidateMappedMemoryRanges");
-m_vk.getDeviceMemoryCommitment = (GetDeviceMemoryCommitmentFunc) GET_PROC_ADDR("vkGetDeviceMemoryCommitment");
-m_vk.bindBufferMemory = (BindBufferMemoryFunc) GET_PROC_ADDR("vkBindBufferMemory");
-m_vk.bindImageMemory = (BindImageMemoryFunc) GET_PROC_ADDR("vkBindImageMemory");
-m_vk.getBufferMemoryRequirements = (GetBufferMemoryRequirementsFunc) GET_PROC_ADDR("vkGetBufferMemoryRequirements");
-m_vk.getImageMemoryRequirements = (GetImageMemoryRequirementsFunc) GET_PROC_ADDR("vkGetImageMemoryRequirements");
-m_vk.getImageSparseMemoryRequirements = (GetImageSparseMemoryRequirementsFunc) GET_PROC_ADDR("vkGetImageSparseMemoryRequirements");
-m_vk.queueBindSparse = (QueueBindSparseFunc) GET_PROC_ADDR("vkQueueBindSparse");
-m_vk.createFence = (CreateFenceFunc) GET_PROC_ADDR("vkCreateFence");
-m_vk.destroyFence = (DestroyFenceFunc) GET_PROC_ADDR("vkDestroyFence");
-m_vk.resetFences = (ResetFencesFunc) GET_PROC_ADDR("vkResetFences");
-m_vk.getFenceStatus = (GetFenceStatusFunc) GET_PROC_ADDR("vkGetFenceStatus");
-m_vk.waitForFences = (WaitForFencesFunc) GET_PROC_ADDR("vkWaitForFences");
-m_vk.createSemaphore = (CreateSemaphoreFunc) GET_PROC_ADDR("vkCreateSemaphore");
-m_vk.destroySemaphore = (DestroySemaphoreFunc) GET_PROC_ADDR("vkDestroySemaphore");
-m_vk.createEvent = (CreateEventFunc) GET_PROC_ADDR("vkCreateEvent");
-m_vk.destroyEvent = (DestroyEventFunc) GET_PROC_ADDR("vkDestroyEvent");
-m_vk.getEventStatus = (GetEventStatusFunc) GET_PROC_ADDR("vkGetEventStatus");
-m_vk.setEvent = (SetEventFunc) GET_PROC_ADDR("vkSetEvent");
-m_vk.resetEvent = (ResetEventFunc) GET_PROC_ADDR("vkResetEvent");
-m_vk.createQueryPool = (CreateQueryPoolFunc) GET_PROC_ADDR("vkCreateQueryPool");
-m_vk.destroyQueryPool = (DestroyQueryPoolFunc) GET_PROC_ADDR("vkDestroyQueryPool");
-m_vk.getQueryPoolResults = (GetQueryPoolResultsFunc) GET_PROC_ADDR("vkGetQueryPoolResults");
-m_vk.createBuffer = (CreateBufferFunc) GET_PROC_ADDR("vkCreateBuffer");
-m_vk.destroyBuffer = (DestroyBufferFunc) GET_PROC_ADDR("vkDestroyBuffer");
-m_vk.createBufferView = (CreateBufferViewFunc) GET_PROC_ADDR("vkCreateBufferView");
-m_vk.destroyBufferView = (DestroyBufferViewFunc) GET_PROC_ADDR("vkDestroyBufferView");
-m_vk.createImage = (CreateImageFunc) GET_PROC_ADDR("vkCreateImage");
-m_vk.destroyImage = (DestroyImageFunc) GET_PROC_ADDR("vkDestroyImage");
-m_vk.getImageSubresourceLayout = (GetImageSubresourceLayoutFunc) GET_PROC_ADDR("vkGetImageSubresourceLayout");
-m_vk.createImageView = (CreateImageViewFunc) GET_PROC_ADDR("vkCreateImageView");
-m_vk.destroyImageView = (DestroyImageViewFunc) GET_PROC_ADDR("vkDestroyImageView");
-m_vk.createShaderModule = (CreateShaderModuleFunc) GET_PROC_ADDR("vkCreateShaderModule");
-m_vk.destroyShaderModule = (DestroyShaderModuleFunc) GET_PROC_ADDR("vkDestroyShaderModule");
-m_vk.createPipelineCache = (CreatePipelineCacheFunc) GET_PROC_ADDR("vkCreatePipelineCache");
-m_vk.destroyPipelineCache = (DestroyPipelineCacheFunc) GET_PROC_ADDR("vkDestroyPipelineCache");
-m_vk.getPipelineCacheData = (GetPipelineCacheDataFunc) GET_PROC_ADDR("vkGetPipelineCacheData");
-m_vk.mergePipelineCaches = (MergePipelineCachesFunc) GET_PROC_ADDR("vkMergePipelineCaches");
-m_vk.createGraphicsPipelines = (CreateGraphicsPipelinesFunc) GET_PROC_ADDR("vkCreateGraphicsPipelines");
-m_vk.createComputePipelines = (CreateComputePipelinesFunc) GET_PROC_ADDR("vkCreateComputePipelines");
-m_vk.destroyPipeline = (DestroyPipelineFunc) GET_PROC_ADDR("vkDestroyPipeline");
-m_vk.createPipelineLayout = (CreatePipelineLayoutFunc) GET_PROC_ADDR("vkCreatePipelineLayout");
-m_vk.destroyPipelineLayout = (DestroyPipelineLayoutFunc) GET_PROC_ADDR("vkDestroyPipelineLayout");
-m_vk.createSampler = (CreateSamplerFunc) GET_PROC_ADDR("vkCreateSampler");
-m_vk.destroySampler = (DestroySamplerFunc) GET_PROC_ADDR("vkDestroySampler");
-m_vk.createDescriptorSetLayout = (CreateDescriptorSetLayoutFunc) GET_PROC_ADDR("vkCreateDescriptorSetLayout");
-m_vk.destroyDescriptorSetLayout = (DestroyDescriptorSetLayoutFunc) GET_PROC_ADDR("vkDestroyDescriptorSetLayout");
-m_vk.createDescriptorPool = (CreateDescriptorPoolFunc) GET_PROC_ADDR("vkCreateDescriptorPool");
-m_vk.destroyDescriptorPool = (DestroyDescriptorPoolFunc) GET_PROC_ADDR("vkDestroyDescriptorPool");
-m_vk.resetDescriptorPool = (ResetDescriptorPoolFunc) GET_PROC_ADDR("vkResetDescriptorPool");
-m_vk.allocateDescriptorSets = (AllocateDescriptorSetsFunc) GET_PROC_ADDR("vkAllocateDescriptorSets");
-m_vk.freeDescriptorSets = (FreeDescriptorSetsFunc) GET_PROC_ADDR("vkFreeDescriptorSets");
-m_vk.updateDescriptorSets = (UpdateDescriptorSetsFunc) GET_PROC_ADDR("vkUpdateDescriptorSets");
-m_vk.createFramebuffer = (CreateFramebufferFunc) GET_PROC_ADDR("vkCreateFramebuffer");
-m_vk.destroyFramebuffer = (DestroyFramebufferFunc) GET_PROC_ADDR("vkDestroyFramebuffer");
-m_vk.createRenderPass = (CreateRenderPassFunc) GET_PROC_ADDR("vkCreateRenderPass");
-m_vk.destroyRenderPass = (DestroyRenderPassFunc) GET_PROC_ADDR("vkDestroyRenderPass");
-m_vk.getRenderAreaGranularity = (GetRenderAreaGranularityFunc) GET_PROC_ADDR("vkGetRenderAreaGranularity");
-m_vk.createCommandPool = (CreateCommandPoolFunc) GET_PROC_ADDR("vkCreateCommandPool");
-m_vk.destroyCommandPool = (DestroyCommandPoolFunc) GET_PROC_ADDR("vkDestroyCommandPool");
-m_vk.resetCommandPool = (ResetCommandPoolFunc) GET_PROC_ADDR("vkResetCommandPool");
-m_vk.allocateCommandBuffers = (AllocateCommandBuffersFunc) GET_PROC_ADDR("vkAllocateCommandBuffers");
-m_vk.freeCommandBuffers = (FreeCommandBuffersFunc) GET_PROC_ADDR("vkFreeCommandBuffers");
-m_vk.beginCommandBuffer = (BeginCommandBufferFunc) GET_PROC_ADDR("vkBeginCommandBuffer");
-m_vk.endCommandBuffer = (EndCommandBufferFunc) GET_PROC_ADDR("vkEndCommandBuffer");
-m_vk.resetCommandBuffer = (ResetCommandBufferFunc) GET_PROC_ADDR("vkResetCommandBuffer");
-m_vk.cmdBindPipeline = (CmdBindPipelineFunc) GET_PROC_ADDR("vkCmdBindPipeline");
-m_vk.cmdSetViewport = (CmdSetViewportFunc) GET_PROC_ADDR("vkCmdSetViewport");
-m_vk.cmdSetScissor = (CmdSetScissorFunc) GET_PROC_ADDR("vkCmdSetScissor");
-m_vk.cmdSetLineWidth = (CmdSetLineWidthFunc) GET_PROC_ADDR("vkCmdSetLineWidth");
-m_vk.cmdSetDepthBias = (CmdSetDepthBiasFunc) GET_PROC_ADDR("vkCmdSetDepthBias");
-m_vk.cmdSetBlendConstants = (CmdSetBlendConstantsFunc) GET_PROC_ADDR("vkCmdSetBlendConstants");
-m_vk.cmdSetDepthBounds = (CmdSetDepthBoundsFunc) GET_PROC_ADDR("vkCmdSetDepthBounds");
-m_vk.cmdSetStencilCompareMask = (CmdSetStencilCompareMaskFunc) GET_PROC_ADDR("vkCmdSetStencilCompareMask");
-m_vk.cmdSetStencilWriteMask = (CmdSetStencilWriteMaskFunc) GET_PROC_ADDR("vkCmdSetStencilWriteMask");
-m_vk.cmdSetStencilReference = (CmdSetStencilReferenceFunc) GET_PROC_ADDR("vkCmdSetStencilReference");
-m_vk.cmdBindDescriptorSets = (CmdBindDescriptorSetsFunc) GET_PROC_ADDR("vkCmdBindDescriptorSets");
-m_vk.cmdBindIndexBuffer = (CmdBindIndexBufferFunc) GET_PROC_ADDR("vkCmdBindIndexBuffer");
-m_vk.cmdBindVertexBuffers = (CmdBindVertexBuffersFunc) GET_PROC_ADDR("vkCmdBindVertexBuffers");
-m_vk.cmdDraw = (CmdDrawFunc) GET_PROC_ADDR("vkCmdDraw");
-m_vk.cmdDrawIndexed = (CmdDrawIndexedFunc) GET_PROC_ADDR("vkCmdDrawIndexed");
-m_vk.cmdDrawIndirect = (CmdDrawIndirectFunc) GET_PROC_ADDR("vkCmdDrawIndirect");
-m_vk.cmdDrawIndexedIndirect = (CmdDrawIndexedIndirectFunc) GET_PROC_ADDR("vkCmdDrawIndexedIndirect");
-m_vk.cmdDispatch = (CmdDispatchFunc) GET_PROC_ADDR("vkCmdDispatch");
-m_vk.cmdDispatchIndirect = (CmdDispatchIndirectFunc) GET_PROC_ADDR("vkCmdDispatchIndirect");
-m_vk.cmdCopyBuffer = (CmdCopyBufferFunc) GET_PROC_ADDR("vkCmdCopyBuffer");
-m_vk.cmdCopyImage = (CmdCopyImageFunc) GET_PROC_ADDR("vkCmdCopyImage");
-m_vk.cmdBlitImage = (CmdBlitImageFunc) GET_PROC_ADDR("vkCmdBlitImage");
-m_vk.cmdCopyBufferToImage = (CmdCopyBufferToImageFunc) GET_PROC_ADDR("vkCmdCopyBufferToImage");
-m_vk.cmdCopyImageToBuffer = (CmdCopyImageToBufferFunc) GET_PROC_ADDR("vkCmdCopyImageToBuffer");
-m_vk.cmdUpdateBuffer = (CmdUpdateBufferFunc) GET_PROC_ADDR("vkCmdUpdateBuffer");
-m_vk.cmdFillBuffer = (CmdFillBufferFunc) GET_PROC_ADDR("vkCmdFillBuffer");
-m_vk.cmdClearColorImage = (CmdClearColorImageFunc) GET_PROC_ADDR("vkCmdClearColorImage");
-m_vk.cmdClearDepthStencilImage = (CmdClearDepthStencilImageFunc) GET_PROC_ADDR("vkCmdClearDepthStencilImage");
-m_vk.cmdClearAttachments = (CmdClearAttachmentsFunc) GET_PROC_ADDR("vkCmdClearAttachments");
-m_vk.cmdResolveImage = (CmdResolveImageFunc) GET_PROC_ADDR("vkCmdResolveImage");
-m_vk.cmdSetEvent = (CmdSetEventFunc) GET_PROC_ADDR("vkCmdSetEvent");
-m_vk.cmdResetEvent = (CmdResetEventFunc) GET_PROC_ADDR("vkCmdResetEvent");
-m_vk.cmdWaitEvents = (CmdWaitEventsFunc) GET_PROC_ADDR("vkCmdWaitEvents");
-m_vk.cmdPipelineBarrier = (CmdPipelineBarrierFunc) GET_PROC_ADDR("vkCmdPipelineBarrier");
-m_vk.cmdBeginQuery = (CmdBeginQueryFunc) GET_PROC_ADDR("vkCmdBeginQuery");
-m_vk.cmdEndQuery = (CmdEndQueryFunc) GET_PROC_ADDR("vkCmdEndQuery");
-m_vk.cmdResetQueryPool = (CmdResetQueryPoolFunc) GET_PROC_ADDR("vkCmdResetQueryPool");
-m_vk.cmdWriteTimestamp = (CmdWriteTimestampFunc) GET_PROC_ADDR("vkCmdWriteTimestamp");
-m_vk.cmdCopyQueryPoolResults = (CmdCopyQueryPoolResultsFunc) GET_PROC_ADDR("vkCmdCopyQueryPoolResults");
-m_vk.cmdPushConstants = (CmdPushConstantsFunc) GET_PROC_ADDR("vkCmdPushConstants");
-m_vk.cmdBeginRenderPass = (CmdBeginRenderPassFunc) GET_PROC_ADDR("vkCmdBeginRenderPass");
-m_vk.cmdNextSubpass = (CmdNextSubpassFunc) GET_PROC_ADDR("vkCmdNextSubpass");
-m_vk.cmdEndRenderPass = (CmdEndRenderPassFunc) GET_PROC_ADDR("vkCmdEndRenderPass");
-m_vk.cmdExecuteCommands = (CmdExecuteCommandsFunc) GET_PROC_ADDR("vkCmdExecuteCommands");
-m_vk.createSwapchainKHR = (CreateSwapchainKHRFunc) GET_PROC_ADDR("vkCreateSwapchainKHR");
-m_vk.destroySwapchainKHR = (DestroySwapchainKHRFunc) GET_PROC_ADDR("vkDestroySwapchainKHR");
-m_vk.getSwapchainImagesKHR = (GetSwapchainImagesKHRFunc) GET_PROC_ADDR("vkGetSwapchainImagesKHR");
-m_vk.acquireNextImageKHR = (AcquireNextImageKHRFunc) GET_PROC_ADDR("vkAcquireNextImageKHR");
-m_vk.queuePresentKHR = (QueuePresentKHRFunc) GET_PROC_ADDR("vkQueuePresentKHR");
-m_vk.createSharedSwapchainsKHR = (CreateSharedSwapchainsKHRFunc) GET_PROC_ADDR("vkCreateSharedSwapchainsKHR");
-m_vk.trimCommandPoolKHR = (TrimCommandPoolKHRFunc) GET_PROC_ADDR("vkTrimCommandPoolKHR");
-m_vk.debugMarkerSetObjectTagEXT = (DebugMarkerSetObjectTagEXTFunc) GET_PROC_ADDR("vkDebugMarkerSetObjectTagEXT");
-m_vk.debugMarkerSetObjectNameEXT = (DebugMarkerSetObjectNameEXTFunc) GET_PROC_ADDR("vkDebugMarkerSetObjectNameEXT");
-m_vk.cmdDebugMarkerBeginEXT = (CmdDebugMarkerBeginEXTFunc) GET_PROC_ADDR("vkCmdDebugMarkerBeginEXT");
-m_vk.cmdDebugMarkerEndEXT = (CmdDebugMarkerEndEXTFunc) GET_PROC_ADDR("vkCmdDebugMarkerEndEXT");
-m_vk.cmdDebugMarkerInsertEXT = (CmdDebugMarkerInsertEXTFunc) GET_PROC_ADDR("vkCmdDebugMarkerInsertEXT");
-m_vk.cmdDrawIndirectCountAMD = (CmdDrawIndirectCountAMDFunc) GET_PROC_ADDR("vkCmdDrawIndirectCountAMD");
-m_vk.cmdDrawIndexedIndirectCountAMD = (CmdDrawIndexedIndirectCountAMDFunc) GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountAMD");
-m_vk.getMemoryWin32HandleNV = (GetMemoryWin32HandleNVFunc) GET_PROC_ADDR("vkGetMemoryWin32HandleNV");
-m_vk.cmdProcessCommandsNVX = (CmdProcessCommandsNVXFunc) GET_PROC_ADDR("vkCmdProcessCommandsNVX");
-m_vk.cmdReserveSpaceForCommandsNVX = (CmdReserveSpaceForCommandsNVXFunc) GET_PROC_ADDR("vkCmdReserveSpaceForCommandsNVX");
-m_vk.createIndirectCommandsLayoutNVX = (CreateIndirectCommandsLayoutNVXFunc) GET_PROC_ADDR("vkCreateIndirectCommandsLayoutNVX");
-m_vk.destroyIndirectCommandsLayoutNVX = (DestroyIndirectCommandsLayoutNVXFunc) GET_PROC_ADDR("vkDestroyIndirectCommandsLayoutNVX");
-m_vk.createObjectTableNVX = (CreateObjectTableNVXFunc) GET_PROC_ADDR("vkCreateObjectTableNVX");
-m_vk.destroyObjectTableNVX = (DestroyObjectTableNVXFunc) GET_PROC_ADDR("vkDestroyObjectTableNVX");
-m_vk.registerObjectsNVX = (RegisterObjectsNVXFunc) GET_PROC_ADDR("vkRegisterObjectsNVX");
-m_vk.unregisterObjectsNVX = (UnregisterObjectsNVXFunc) GET_PROC_ADDR("vkUnregisterObjectsNVX");
-m_vk.getPhysicalDeviceGeneratedCommandsPropertiesNVX = (GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc) GET_PROC_ADDR("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
+m_vk.destroyDevice = (DestroyDeviceFunc) GET_PROC_ADDR("vkDestroyDevice");
+m_vk.getDeviceQueue = (GetDeviceQueueFunc) GET_PROC_ADDR("vkGetDeviceQueue");
+m_vk.queueSubmit = (QueueSubmitFunc) GET_PROC_ADDR("vkQueueSubmit");
+m_vk.queueWaitIdle = (QueueWaitIdleFunc) GET_PROC_ADDR("vkQueueWaitIdle");
+m_vk.deviceWaitIdle = (DeviceWaitIdleFunc) GET_PROC_ADDR("vkDeviceWaitIdle");
+m_vk.allocateMemory = (AllocateMemoryFunc) GET_PROC_ADDR("vkAllocateMemory");
+m_vk.freeMemory = (FreeMemoryFunc) GET_PROC_ADDR("vkFreeMemory");
+m_vk.mapMemory = (MapMemoryFunc) GET_PROC_ADDR("vkMapMemory");
+m_vk.unmapMemory = (UnmapMemoryFunc) GET_PROC_ADDR("vkUnmapMemory");
+m_vk.flushMappedMemoryRanges = (FlushMappedMemoryRangesFunc) GET_PROC_ADDR("vkFlushMappedMemoryRanges");
+m_vk.invalidateMappedMemoryRanges = (InvalidateMappedMemoryRangesFunc) GET_PROC_ADDR("vkInvalidateMappedMemoryRanges");
+m_vk.getDeviceMemoryCommitment = (GetDeviceMemoryCommitmentFunc) GET_PROC_ADDR("vkGetDeviceMemoryCommitment");
+m_vk.bindBufferMemory = (BindBufferMemoryFunc) GET_PROC_ADDR("vkBindBufferMemory");
+m_vk.bindImageMemory = (BindImageMemoryFunc) GET_PROC_ADDR("vkBindImageMemory");
+m_vk.getBufferMemoryRequirements = (GetBufferMemoryRequirementsFunc) GET_PROC_ADDR("vkGetBufferMemoryRequirements");
+m_vk.getImageMemoryRequirements = (GetImageMemoryRequirementsFunc) GET_PROC_ADDR("vkGetImageMemoryRequirements");
+m_vk.getImageSparseMemoryRequirements = (GetImageSparseMemoryRequirementsFunc) GET_PROC_ADDR("vkGetImageSparseMemoryRequirements");
+m_vk.queueBindSparse = (QueueBindSparseFunc) GET_PROC_ADDR("vkQueueBindSparse");
+m_vk.createFence = (CreateFenceFunc) GET_PROC_ADDR("vkCreateFence");
+m_vk.destroyFence = (DestroyFenceFunc) GET_PROC_ADDR("vkDestroyFence");
+m_vk.resetFences = (ResetFencesFunc) GET_PROC_ADDR("vkResetFences");
+m_vk.getFenceStatus = (GetFenceStatusFunc) GET_PROC_ADDR("vkGetFenceStatus");
+m_vk.waitForFences = (WaitForFencesFunc) GET_PROC_ADDR("vkWaitForFences");
+m_vk.createSemaphore = (CreateSemaphoreFunc) GET_PROC_ADDR("vkCreateSemaphore");
+m_vk.destroySemaphore = (DestroySemaphoreFunc) GET_PROC_ADDR("vkDestroySemaphore");
+m_vk.createEvent = (CreateEventFunc) GET_PROC_ADDR("vkCreateEvent");
+m_vk.destroyEvent = (DestroyEventFunc) GET_PROC_ADDR("vkDestroyEvent");
+m_vk.getEventStatus = (GetEventStatusFunc) GET_PROC_ADDR("vkGetEventStatus");
+m_vk.setEvent = (SetEventFunc) GET_PROC_ADDR("vkSetEvent");
+m_vk.resetEvent = (ResetEventFunc) GET_PROC_ADDR("vkResetEvent");
+m_vk.createQueryPool = (CreateQueryPoolFunc) GET_PROC_ADDR("vkCreateQueryPool");
+m_vk.destroyQueryPool = (DestroyQueryPoolFunc) GET_PROC_ADDR("vkDestroyQueryPool");
+m_vk.getQueryPoolResults = (GetQueryPoolResultsFunc) GET_PROC_ADDR("vkGetQueryPoolResults");
+m_vk.createBuffer = (CreateBufferFunc) GET_PROC_ADDR("vkCreateBuffer");
+m_vk.destroyBuffer = (DestroyBufferFunc) GET_PROC_ADDR("vkDestroyBuffer");
+m_vk.createBufferView = (CreateBufferViewFunc) GET_PROC_ADDR("vkCreateBufferView");
+m_vk.destroyBufferView = (DestroyBufferViewFunc) GET_PROC_ADDR("vkDestroyBufferView");
+m_vk.createImage = (CreateImageFunc) GET_PROC_ADDR("vkCreateImage");
+m_vk.destroyImage = (DestroyImageFunc) GET_PROC_ADDR("vkDestroyImage");
+m_vk.getImageSubresourceLayout = (GetImageSubresourceLayoutFunc) GET_PROC_ADDR("vkGetImageSubresourceLayout");
+m_vk.createImageView = (CreateImageViewFunc) GET_PROC_ADDR("vkCreateImageView");
+m_vk.destroyImageView = (DestroyImageViewFunc) GET_PROC_ADDR("vkDestroyImageView");
+m_vk.createShaderModule = (CreateShaderModuleFunc) GET_PROC_ADDR("vkCreateShaderModule");
+m_vk.destroyShaderModule = (DestroyShaderModuleFunc) GET_PROC_ADDR("vkDestroyShaderModule");
+m_vk.createPipelineCache = (CreatePipelineCacheFunc) GET_PROC_ADDR("vkCreatePipelineCache");
+m_vk.destroyPipelineCache = (DestroyPipelineCacheFunc) GET_PROC_ADDR("vkDestroyPipelineCache");
+m_vk.getPipelineCacheData = (GetPipelineCacheDataFunc) GET_PROC_ADDR("vkGetPipelineCacheData");
+m_vk.mergePipelineCaches = (MergePipelineCachesFunc) GET_PROC_ADDR("vkMergePipelineCaches");
+m_vk.createGraphicsPipelines = (CreateGraphicsPipelinesFunc) GET_PROC_ADDR("vkCreateGraphicsPipelines");
+m_vk.createComputePipelines = (CreateComputePipelinesFunc) GET_PROC_ADDR("vkCreateComputePipelines");
+m_vk.destroyPipeline = (DestroyPipelineFunc) GET_PROC_ADDR("vkDestroyPipeline");
+m_vk.createPipelineLayout = (CreatePipelineLayoutFunc) GET_PROC_ADDR("vkCreatePipelineLayout");
+m_vk.destroyPipelineLayout = (DestroyPipelineLayoutFunc) GET_PROC_ADDR("vkDestroyPipelineLayout");
+m_vk.createSampler = (CreateSamplerFunc) GET_PROC_ADDR("vkCreateSampler");
+m_vk.destroySampler = (DestroySamplerFunc) GET_PROC_ADDR("vkDestroySampler");
+m_vk.createDescriptorSetLayout = (CreateDescriptorSetLayoutFunc) GET_PROC_ADDR("vkCreateDescriptorSetLayout");
+m_vk.destroyDescriptorSetLayout = (DestroyDescriptorSetLayoutFunc) GET_PROC_ADDR("vkDestroyDescriptorSetLayout");
+m_vk.createDescriptorPool = (CreateDescriptorPoolFunc) GET_PROC_ADDR("vkCreateDescriptorPool");
+m_vk.destroyDescriptorPool = (DestroyDescriptorPoolFunc) GET_PROC_ADDR("vkDestroyDescriptorPool");
+m_vk.resetDescriptorPool = (ResetDescriptorPoolFunc) GET_PROC_ADDR("vkResetDescriptorPool");
+m_vk.allocateDescriptorSets = (AllocateDescriptorSetsFunc) GET_PROC_ADDR("vkAllocateDescriptorSets");
+m_vk.freeDescriptorSets = (FreeDescriptorSetsFunc) GET_PROC_ADDR("vkFreeDescriptorSets");
+m_vk.updateDescriptorSets = (UpdateDescriptorSetsFunc) GET_PROC_ADDR("vkUpdateDescriptorSets");
+m_vk.createFramebuffer = (CreateFramebufferFunc) GET_PROC_ADDR("vkCreateFramebuffer");
+m_vk.destroyFramebuffer = (DestroyFramebufferFunc) GET_PROC_ADDR("vkDestroyFramebuffer");
+m_vk.createRenderPass = (CreateRenderPassFunc) GET_PROC_ADDR("vkCreateRenderPass");
+m_vk.destroyRenderPass = (DestroyRenderPassFunc) GET_PROC_ADDR("vkDestroyRenderPass");
+m_vk.getRenderAreaGranularity = (GetRenderAreaGranularityFunc) GET_PROC_ADDR("vkGetRenderAreaGranularity");
+m_vk.createCommandPool = (CreateCommandPoolFunc) GET_PROC_ADDR("vkCreateCommandPool");
+m_vk.destroyCommandPool = (DestroyCommandPoolFunc) GET_PROC_ADDR("vkDestroyCommandPool");
+m_vk.resetCommandPool = (ResetCommandPoolFunc) GET_PROC_ADDR("vkResetCommandPool");
+m_vk.allocateCommandBuffers = (AllocateCommandBuffersFunc) GET_PROC_ADDR("vkAllocateCommandBuffers");
+m_vk.freeCommandBuffers = (FreeCommandBuffersFunc) GET_PROC_ADDR("vkFreeCommandBuffers");
+m_vk.beginCommandBuffer = (BeginCommandBufferFunc) GET_PROC_ADDR("vkBeginCommandBuffer");
+m_vk.endCommandBuffer = (EndCommandBufferFunc) GET_PROC_ADDR("vkEndCommandBuffer");
+m_vk.resetCommandBuffer = (ResetCommandBufferFunc) GET_PROC_ADDR("vkResetCommandBuffer");
+m_vk.cmdBindPipeline = (CmdBindPipelineFunc) GET_PROC_ADDR("vkCmdBindPipeline");
+m_vk.cmdSetViewport = (CmdSetViewportFunc) GET_PROC_ADDR("vkCmdSetViewport");
+m_vk.cmdSetScissor = (CmdSetScissorFunc) GET_PROC_ADDR("vkCmdSetScissor");
+m_vk.cmdSetLineWidth = (CmdSetLineWidthFunc) GET_PROC_ADDR("vkCmdSetLineWidth");
+m_vk.cmdSetDepthBias = (CmdSetDepthBiasFunc) GET_PROC_ADDR("vkCmdSetDepthBias");
+m_vk.cmdSetBlendConstants = (CmdSetBlendConstantsFunc) GET_PROC_ADDR("vkCmdSetBlendConstants");
+m_vk.cmdSetDepthBounds = (CmdSetDepthBoundsFunc) GET_PROC_ADDR("vkCmdSetDepthBounds");
+m_vk.cmdSetStencilCompareMask = (CmdSetStencilCompareMaskFunc) GET_PROC_ADDR("vkCmdSetStencilCompareMask");
+m_vk.cmdSetStencilWriteMask = (CmdSetStencilWriteMaskFunc) GET_PROC_ADDR("vkCmdSetStencilWriteMask");
+m_vk.cmdSetStencilReference = (CmdSetStencilReferenceFunc) GET_PROC_ADDR("vkCmdSetStencilReference");
+m_vk.cmdBindDescriptorSets = (CmdBindDescriptorSetsFunc) GET_PROC_ADDR("vkCmdBindDescriptorSets");
+m_vk.cmdBindIndexBuffer = (CmdBindIndexBufferFunc) GET_PROC_ADDR("vkCmdBindIndexBuffer");
+m_vk.cmdBindVertexBuffers = (CmdBindVertexBuffersFunc) GET_PROC_ADDR("vkCmdBindVertexBuffers");
+m_vk.cmdDraw = (CmdDrawFunc) GET_PROC_ADDR("vkCmdDraw");
+m_vk.cmdDrawIndexed = (CmdDrawIndexedFunc) GET_PROC_ADDR("vkCmdDrawIndexed");
+m_vk.cmdDrawIndirect = (CmdDrawIndirectFunc) GET_PROC_ADDR("vkCmdDrawIndirect");
+m_vk.cmdDrawIndexedIndirect = (CmdDrawIndexedIndirectFunc) GET_PROC_ADDR("vkCmdDrawIndexedIndirect");
+m_vk.cmdDispatch = (CmdDispatchFunc) GET_PROC_ADDR("vkCmdDispatch");
+m_vk.cmdDispatchIndirect = (CmdDispatchIndirectFunc) GET_PROC_ADDR("vkCmdDispatchIndirect");
+m_vk.cmdCopyBuffer = (CmdCopyBufferFunc) GET_PROC_ADDR("vkCmdCopyBuffer");
+m_vk.cmdCopyImage = (CmdCopyImageFunc) GET_PROC_ADDR("vkCmdCopyImage");
+m_vk.cmdBlitImage = (CmdBlitImageFunc) GET_PROC_ADDR("vkCmdBlitImage");
+m_vk.cmdCopyBufferToImage = (CmdCopyBufferToImageFunc) GET_PROC_ADDR("vkCmdCopyBufferToImage");
+m_vk.cmdCopyImageToBuffer = (CmdCopyImageToBufferFunc) GET_PROC_ADDR("vkCmdCopyImageToBuffer");
+m_vk.cmdUpdateBuffer = (CmdUpdateBufferFunc) GET_PROC_ADDR("vkCmdUpdateBuffer");
+m_vk.cmdFillBuffer = (CmdFillBufferFunc) GET_PROC_ADDR("vkCmdFillBuffer");
+m_vk.cmdClearColorImage = (CmdClearColorImageFunc) GET_PROC_ADDR("vkCmdClearColorImage");
+m_vk.cmdClearDepthStencilImage = (CmdClearDepthStencilImageFunc) GET_PROC_ADDR("vkCmdClearDepthStencilImage");
+m_vk.cmdClearAttachments = (CmdClearAttachmentsFunc) GET_PROC_ADDR("vkCmdClearAttachments");
+m_vk.cmdResolveImage = (CmdResolveImageFunc) GET_PROC_ADDR("vkCmdResolveImage");
+m_vk.cmdSetEvent = (CmdSetEventFunc) GET_PROC_ADDR("vkCmdSetEvent");
+m_vk.cmdResetEvent = (CmdResetEventFunc) GET_PROC_ADDR("vkCmdResetEvent");
+m_vk.cmdWaitEvents = (CmdWaitEventsFunc) GET_PROC_ADDR("vkCmdWaitEvents");
+m_vk.cmdPipelineBarrier = (CmdPipelineBarrierFunc) GET_PROC_ADDR("vkCmdPipelineBarrier");
+m_vk.cmdBeginQuery = (CmdBeginQueryFunc) GET_PROC_ADDR("vkCmdBeginQuery");
+m_vk.cmdEndQuery = (CmdEndQueryFunc) GET_PROC_ADDR("vkCmdEndQuery");
+m_vk.cmdResetQueryPool = (CmdResetQueryPoolFunc) GET_PROC_ADDR("vkCmdResetQueryPool");
+m_vk.cmdWriteTimestamp = (CmdWriteTimestampFunc) GET_PROC_ADDR("vkCmdWriteTimestamp");
+m_vk.cmdCopyQueryPoolResults = (CmdCopyQueryPoolResultsFunc) GET_PROC_ADDR("vkCmdCopyQueryPoolResults");
+m_vk.cmdPushConstants = (CmdPushConstantsFunc) GET_PROC_ADDR("vkCmdPushConstants");
+m_vk.cmdBeginRenderPass = (CmdBeginRenderPassFunc) GET_PROC_ADDR("vkCmdBeginRenderPass");
+m_vk.cmdNextSubpass = (CmdNextSubpassFunc) GET_PROC_ADDR("vkCmdNextSubpass");
+m_vk.cmdEndRenderPass = (CmdEndRenderPassFunc) GET_PROC_ADDR("vkCmdEndRenderPass");
+m_vk.cmdExecuteCommands = (CmdExecuteCommandsFunc) GET_PROC_ADDR("vkCmdExecuteCommands");
+m_vk.createSwapchainKHR = (CreateSwapchainKHRFunc) GET_PROC_ADDR("vkCreateSwapchainKHR");
+m_vk.destroySwapchainKHR = (DestroySwapchainKHRFunc) GET_PROC_ADDR("vkDestroySwapchainKHR");
+m_vk.getSwapchainImagesKHR = (GetSwapchainImagesKHRFunc) GET_PROC_ADDR("vkGetSwapchainImagesKHR");
+m_vk.acquireNextImageKHR = (AcquireNextImageKHRFunc) GET_PROC_ADDR("vkAcquireNextImageKHR");
+m_vk.queuePresentKHR = (QueuePresentKHRFunc) GET_PROC_ADDR("vkQueuePresentKHR");
+m_vk.createSharedSwapchainsKHR = (CreateSharedSwapchainsKHRFunc) GET_PROC_ADDR("vkCreateSharedSwapchainsKHR");
+m_vk.trimCommandPoolKHR = (TrimCommandPoolKHRFunc) GET_PROC_ADDR("vkTrimCommandPoolKHR");
+m_vk.debugMarkerSetObjectTagEXT = (DebugMarkerSetObjectTagEXTFunc) GET_PROC_ADDR("vkDebugMarkerSetObjectTagEXT");
+m_vk.debugMarkerSetObjectNameEXT = (DebugMarkerSetObjectNameEXTFunc) GET_PROC_ADDR("vkDebugMarkerSetObjectNameEXT");
+m_vk.cmdDebugMarkerBeginEXT = (CmdDebugMarkerBeginEXTFunc) GET_PROC_ADDR("vkCmdDebugMarkerBeginEXT");
+m_vk.cmdDebugMarkerEndEXT = (CmdDebugMarkerEndEXTFunc) GET_PROC_ADDR("vkCmdDebugMarkerEndEXT");
+m_vk.cmdDebugMarkerInsertEXT = (CmdDebugMarkerInsertEXTFunc) GET_PROC_ADDR("vkCmdDebugMarkerInsertEXT");
+m_vk.cmdDrawIndirectCountAMD = (CmdDrawIndirectCountAMDFunc) GET_PROC_ADDR("vkCmdDrawIndirectCountAMD");
+m_vk.cmdDrawIndexedIndirectCountAMD = (CmdDrawIndexedIndirectCountAMDFunc) GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountAMD");
+m_vk.getMemoryWin32HandleNV = (GetMemoryWin32HandleNVFunc) GET_PROC_ADDR("vkGetMemoryWin32HandleNV");
+m_vk.cmdProcessCommandsNVX = (CmdProcessCommandsNVXFunc) GET_PROC_ADDR("vkCmdProcessCommandsNVX");
+m_vk.cmdReserveSpaceForCommandsNVX = (CmdReserveSpaceForCommandsNVXFunc) GET_PROC_ADDR("vkCmdReserveSpaceForCommandsNVX");
+m_vk.createIndirectCommandsLayoutNVX = (CreateIndirectCommandsLayoutNVXFunc) GET_PROC_ADDR("vkCreateIndirectCommandsLayoutNVX");
+m_vk.destroyIndirectCommandsLayoutNVX = (DestroyIndirectCommandsLayoutNVXFunc) GET_PROC_ADDR("vkDestroyIndirectCommandsLayoutNVX");
+m_vk.createObjectTableNVX = (CreateObjectTableNVXFunc) GET_PROC_ADDR("vkCreateObjectTableNVX");
+m_vk.destroyObjectTableNVX = (DestroyObjectTableNVXFunc) GET_PROC_ADDR("vkDestroyObjectTableNVX");
+m_vk.registerObjectsNVX = (RegisterObjectsNVXFunc) GET_PROC_ADDR("vkRegisterObjectsNVX");
+m_vk.unregisterObjectsNVX = (UnregisterObjectsNVXFunc) GET_PROC_ADDR("vkUnregisterObjectsNVX");
diff --git a/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
index 10ab1ae..fd29cb0 100644
--- a/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
@@ -48,3 +48,4 @@
m_vk.destroyDebugReportCallbackEXT = (DestroyDebugReportCallbackEXTFunc) GET_PROC_ADDR("vkDestroyDebugReportCallbackEXT");
m_vk.debugReportMessageEXT = (DebugReportMessageEXTFunc) GET_PROC_ADDR("vkDebugReportMessageEXT");
m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV = (GetPhysicalDeviceExternalImageFormatPropertiesNVFunc) GET_PROC_ADDR("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
+m_vk.getPhysicalDeviceGeneratedCommandsPropertiesNVX = (GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc) GET_PROC_ADDR("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
diff --git a/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl b/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
index fb3d713..9a03fd4 100644
--- a/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
@@ -236,3 +236,8 @@
{
return m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
}
+
+void InstanceDriver::getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const
+{
+ m_vk.getPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
+}
diff --git a/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
index 148b83f..7062fb9 100644
--- a/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
@@ -48,3 +48,4 @@
DestroyDebugReportCallbackEXTFunc destroyDebugReportCallbackEXT;
DebugReportMessageEXTFunc debugReportMessageEXT;
GetPhysicalDeviceExternalImageFormatPropertiesNVFunc getPhysicalDeviceExternalImageFormatPropertiesNV;
+GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc getPhysicalDeviceGeneratedCommandsPropertiesNVX;
diff --git a/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl b/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
index ff3d2aa..e2c70ce 100644
--- a/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
@@ -1366,153 +1366,153 @@
VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT, destroyDebugReportCallbackEXT),
VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT, debugReportMessageEXT),
VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalImageFormatPropertiesNV, getPhysicalDeviceExternalImageFormatPropertiesNV),
+ VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, getPhysicalDeviceGeneratedCommandsPropertiesNVX),
};
static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
{
- VK_NULL_FUNC_ENTRY(vkDestroyDevice, destroyDevice),
- VK_NULL_FUNC_ENTRY(vkGetDeviceQueue, getDeviceQueue),
- VK_NULL_FUNC_ENTRY(vkQueueSubmit, queueSubmit),
- VK_NULL_FUNC_ENTRY(vkQueueWaitIdle, queueWaitIdle),
- VK_NULL_FUNC_ENTRY(vkDeviceWaitIdle, deviceWaitIdle),
- VK_NULL_FUNC_ENTRY(vkAllocateMemory, allocateMemory),
- VK_NULL_FUNC_ENTRY(vkFreeMemory, freeMemory),
- VK_NULL_FUNC_ENTRY(vkMapMemory, mapMemory),
- VK_NULL_FUNC_ENTRY(vkUnmapMemory, unmapMemory),
- VK_NULL_FUNC_ENTRY(vkFlushMappedMemoryRanges, flushMappedMemoryRanges),
- VK_NULL_FUNC_ENTRY(vkInvalidateMappedMemoryRanges, invalidateMappedMemoryRanges),
- VK_NULL_FUNC_ENTRY(vkGetDeviceMemoryCommitment, getDeviceMemoryCommitment),
- VK_NULL_FUNC_ENTRY(vkBindBufferMemory, bindBufferMemory),
- VK_NULL_FUNC_ENTRY(vkBindImageMemory, bindImageMemory),
- VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements, getBufferMemoryRequirements),
- VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements, getImageMemoryRequirements),
- VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements, getImageSparseMemoryRequirements),
- VK_NULL_FUNC_ENTRY(vkQueueBindSparse, queueBindSparse),
- VK_NULL_FUNC_ENTRY(vkCreateFence, createFence),
- VK_NULL_FUNC_ENTRY(vkDestroyFence, destroyFence),
- VK_NULL_FUNC_ENTRY(vkResetFences, resetFences),
- VK_NULL_FUNC_ENTRY(vkGetFenceStatus, getFenceStatus),
- VK_NULL_FUNC_ENTRY(vkWaitForFences, waitForFences),
- VK_NULL_FUNC_ENTRY(vkCreateSemaphore, createSemaphore),
- VK_NULL_FUNC_ENTRY(vkDestroySemaphore, destroySemaphore),
- VK_NULL_FUNC_ENTRY(vkCreateEvent, createEvent),
- VK_NULL_FUNC_ENTRY(vkDestroyEvent, destroyEvent),
- VK_NULL_FUNC_ENTRY(vkGetEventStatus, getEventStatus),
- VK_NULL_FUNC_ENTRY(vkSetEvent, setEvent),
- VK_NULL_FUNC_ENTRY(vkResetEvent, resetEvent),
- VK_NULL_FUNC_ENTRY(vkCreateQueryPool, createQueryPool),
- VK_NULL_FUNC_ENTRY(vkDestroyQueryPool, destroyQueryPool),
- VK_NULL_FUNC_ENTRY(vkGetQueryPoolResults, getQueryPoolResults),
- VK_NULL_FUNC_ENTRY(vkCreateBuffer, createBuffer),
- VK_NULL_FUNC_ENTRY(vkDestroyBuffer, destroyBuffer),
- VK_NULL_FUNC_ENTRY(vkCreateBufferView, createBufferView),
- VK_NULL_FUNC_ENTRY(vkDestroyBufferView, destroyBufferView),
- VK_NULL_FUNC_ENTRY(vkCreateImage, createImage),
- VK_NULL_FUNC_ENTRY(vkDestroyImage, destroyImage),
- VK_NULL_FUNC_ENTRY(vkGetImageSubresourceLayout, getImageSubresourceLayout),
- VK_NULL_FUNC_ENTRY(vkCreateImageView, createImageView),
- VK_NULL_FUNC_ENTRY(vkDestroyImageView, destroyImageView),
- VK_NULL_FUNC_ENTRY(vkCreateShaderModule, createShaderModule),
- VK_NULL_FUNC_ENTRY(vkDestroyShaderModule, destroyShaderModule),
- VK_NULL_FUNC_ENTRY(vkCreatePipelineCache, createPipelineCache),
- VK_NULL_FUNC_ENTRY(vkDestroyPipelineCache, destroyPipelineCache),
- VK_NULL_FUNC_ENTRY(vkGetPipelineCacheData, getPipelineCacheData),
- VK_NULL_FUNC_ENTRY(vkMergePipelineCaches, mergePipelineCaches),
- VK_NULL_FUNC_ENTRY(vkCreateGraphicsPipelines, createGraphicsPipelines),
- VK_NULL_FUNC_ENTRY(vkCreateComputePipelines, createComputePipelines),
- VK_NULL_FUNC_ENTRY(vkDestroyPipeline, destroyPipeline),
- VK_NULL_FUNC_ENTRY(vkCreatePipelineLayout, createPipelineLayout),
- VK_NULL_FUNC_ENTRY(vkDestroyPipelineLayout, destroyPipelineLayout),
- VK_NULL_FUNC_ENTRY(vkCreateSampler, createSampler),
- VK_NULL_FUNC_ENTRY(vkDestroySampler, destroySampler),
- VK_NULL_FUNC_ENTRY(vkCreateDescriptorSetLayout, createDescriptorSetLayout),
- VK_NULL_FUNC_ENTRY(vkDestroyDescriptorSetLayout, destroyDescriptorSetLayout),
- VK_NULL_FUNC_ENTRY(vkCreateDescriptorPool, createDescriptorPool),
- VK_NULL_FUNC_ENTRY(vkDestroyDescriptorPool, destroyDescriptorPool),
- VK_NULL_FUNC_ENTRY(vkResetDescriptorPool, resetDescriptorPool),
- VK_NULL_FUNC_ENTRY(vkAllocateDescriptorSets, allocateDescriptorSets),
- VK_NULL_FUNC_ENTRY(vkFreeDescriptorSets, freeDescriptorSets),
- VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSets, updateDescriptorSets),
- VK_NULL_FUNC_ENTRY(vkCreateFramebuffer, createFramebuffer),
- VK_NULL_FUNC_ENTRY(vkDestroyFramebuffer, destroyFramebuffer),
- VK_NULL_FUNC_ENTRY(vkCreateRenderPass, createRenderPass),
- VK_NULL_FUNC_ENTRY(vkDestroyRenderPass, destroyRenderPass),
- VK_NULL_FUNC_ENTRY(vkGetRenderAreaGranularity, getRenderAreaGranularity),
- VK_NULL_FUNC_ENTRY(vkCreateCommandPool, createCommandPool),
- VK_NULL_FUNC_ENTRY(vkDestroyCommandPool, destroyCommandPool),
- VK_NULL_FUNC_ENTRY(vkResetCommandPool, resetCommandPool),
- VK_NULL_FUNC_ENTRY(vkAllocateCommandBuffers, allocateCommandBuffers),
- VK_NULL_FUNC_ENTRY(vkFreeCommandBuffers, freeCommandBuffers),
- VK_NULL_FUNC_ENTRY(vkBeginCommandBuffer, beginCommandBuffer),
- VK_NULL_FUNC_ENTRY(vkEndCommandBuffer, endCommandBuffer),
- VK_NULL_FUNC_ENTRY(vkResetCommandBuffer, resetCommandBuffer),
- VK_NULL_FUNC_ENTRY(vkCmdBindPipeline, cmdBindPipeline),
- VK_NULL_FUNC_ENTRY(vkCmdSetViewport, cmdSetViewport),
- VK_NULL_FUNC_ENTRY(vkCmdSetScissor, cmdSetScissor),
- VK_NULL_FUNC_ENTRY(vkCmdSetLineWidth, cmdSetLineWidth),
- VK_NULL_FUNC_ENTRY(vkCmdSetDepthBias, cmdSetDepthBias),
- VK_NULL_FUNC_ENTRY(vkCmdSetBlendConstants, cmdSetBlendConstants),
- VK_NULL_FUNC_ENTRY(vkCmdSetDepthBounds, cmdSetDepthBounds),
- VK_NULL_FUNC_ENTRY(vkCmdSetStencilCompareMask, cmdSetStencilCompareMask),
- VK_NULL_FUNC_ENTRY(vkCmdSetStencilWriteMask, cmdSetStencilWriteMask),
- VK_NULL_FUNC_ENTRY(vkCmdSetStencilReference, cmdSetStencilReference),
- VK_NULL_FUNC_ENTRY(vkCmdBindDescriptorSets, cmdBindDescriptorSets),
- VK_NULL_FUNC_ENTRY(vkCmdBindIndexBuffer, cmdBindIndexBuffer),
- VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers, cmdBindVertexBuffers),
- VK_NULL_FUNC_ENTRY(vkCmdDraw, cmdDraw),
- VK_NULL_FUNC_ENTRY(vkCmdDrawIndexed, cmdDrawIndexed),
- VK_NULL_FUNC_ENTRY(vkCmdDrawIndirect, cmdDrawIndirect),
- VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirect, cmdDrawIndexedIndirect),
- VK_NULL_FUNC_ENTRY(vkCmdDispatch, cmdDispatch),
- VK_NULL_FUNC_ENTRY(vkCmdDispatchIndirect, cmdDispatchIndirect),
- VK_NULL_FUNC_ENTRY(vkCmdCopyBuffer, cmdCopyBuffer),
- VK_NULL_FUNC_ENTRY(vkCmdCopyImage, cmdCopyImage),
- VK_NULL_FUNC_ENTRY(vkCmdBlitImage, cmdBlitImage),
- VK_NULL_FUNC_ENTRY(vkCmdCopyBufferToImage, cmdCopyBufferToImage),
- VK_NULL_FUNC_ENTRY(vkCmdCopyImageToBuffer, cmdCopyImageToBuffer),
- VK_NULL_FUNC_ENTRY(vkCmdUpdateBuffer, cmdUpdateBuffer),
- VK_NULL_FUNC_ENTRY(vkCmdFillBuffer, cmdFillBuffer),
- VK_NULL_FUNC_ENTRY(vkCmdClearColorImage, cmdClearColorImage),
- VK_NULL_FUNC_ENTRY(vkCmdClearDepthStencilImage, cmdClearDepthStencilImage),
- VK_NULL_FUNC_ENTRY(vkCmdClearAttachments, cmdClearAttachments),
- VK_NULL_FUNC_ENTRY(vkCmdResolveImage, cmdResolveImage),
- VK_NULL_FUNC_ENTRY(vkCmdSetEvent, cmdSetEvent),
- VK_NULL_FUNC_ENTRY(vkCmdResetEvent, cmdResetEvent),
- VK_NULL_FUNC_ENTRY(vkCmdWaitEvents, cmdWaitEvents),
- VK_NULL_FUNC_ENTRY(vkCmdPipelineBarrier, cmdPipelineBarrier),
- VK_NULL_FUNC_ENTRY(vkCmdBeginQuery, cmdBeginQuery),
- VK_NULL_FUNC_ENTRY(vkCmdEndQuery, cmdEndQuery),
- VK_NULL_FUNC_ENTRY(vkCmdResetQueryPool, cmdResetQueryPool),
- VK_NULL_FUNC_ENTRY(vkCmdWriteTimestamp, cmdWriteTimestamp),
- VK_NULL_FUNC_ENTRY(vkCmdCopyQueryPoolResults, cmdCopyQueryPoolResults),
- VK_NULL_FUNC_ENTRY(vkCmdPushConstants, cmdPushConstants),
- VK_NULL_FUNC_ENTRY(vkCmdBeginRenderPass, cmdBeginRenderPass),
- VK_NULL_FUNC_ENTRY(vkCmdNextSubpass, cmdNextSubpass),
- VK_NULL_FUNC_ENTRY(vkCmdEndRenderPass, cmdEndRenderPass),
- VK_NULL_FUNC_ENTRY(vkCmdExecuteCommands, cmdExecuteCommands),
- VK_NULL_FUNC_ENTRY(vkCreateSwapchainKHR, createSwapchainKHR),
- VK_NULL_FUNC_ENTRY(vkDestroySwapchainKHR, destroySwapchainKHR),
- VK_NULL_FUNC_ENTRY(vkGetSwapchainImagesKHR, getSwapchainImagesKHR),
- VK_NULL_FUNC_ENTRY(vkAcquireNextImageKHR, acquireNextImageKHR),
- VK_NULL_FUNC_ENTRY(vkQueuePresentKHR, queuePresentKHR),
- VK_NULL_FUNC_ENTRY(vkCreateSharedSwapchainsKHR, createSharedSwapchainsKHR),
- VK_NULL_FUNC_ENTRY(vkTrimCommandPoolKHR, trimCommandPoolKHR),
- VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectTagEXT, debugMarkerSetObjectTagEXT),
- VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectNameEXT, debugMarkerSetObjectNameEXT),
- VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerBeginEXT, cmdDebugMarkerBeginEXT),
- VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerEndEXT, cmdDebugMarkerEndEXT),
- VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerInsertEXT, cmdDebugMarkerInsertEXT),
- VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountAMD, cmdDrawIndirectCountAMD),
- VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCountAMD, cmdDrawIndexedIndirectCountAMD),
- VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleNV, getMemoryWin32HandleNV),
- VK_NULL_FUNC_ENTRY(vkCmdProcessCommandsNVX, cmdProcessCommandsNVX),
- VK_NULL_FUNC_ENTRY(vkCmdReserveSpaceForCommandsNVX, cmdReserveSpaceForCommandsNVX),
- VK_NULL_FUNC_ENTRY(vkCreateIndirectCommandsLayoutNVX, createIndirectCommandsLayoutNVX),
- VK_NULL_FUNC_ENTRY(vkDestroyIndirectCommandsLayoutNVX, destroyIndirectCommandsLayoutNVX),
- VK_NULL_FUNC_ENTRY(vkCreateObjectTableNVX, createObjectTableNVX),
- VK_NULL_FUNC_ENTRY(vkDestroyObjectTableNVX, destroyObjectTableNVX),
- VK_NULL_FUNC_ENTRY(vkRegisterObjectsNVX, registerObjectsNVX),
- VK_NULL_FUNC_ENTRY(vkUnregisterObjectsNVX, unregisterObjectsNVX),
- VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, getPhysicalDeviceGeneratedCommandsPropertiesNVX),
+ VK_NULL_FUNC_ENTRY(vkDestroyDevice, destroyDevice),
+ VK_NULL_FUNC_ENTRY(vkGetDeviceQueue, getDeviceQueue),
+ VK_NULL_FUNC_ENTRY(vkQueueSubmit, queueSubmit),
+ VK_NULL_FUNC_ENTRY(vkQueueWaitIdle, queueWaitIdle),
+ VK_NULL_FUNC_ENTRY(vkDeviceWaitIdle, deviceWaitIdle),
+ VK_NULL_FUNC_ENTRY(vkAllocateMemory, allocateMemory),
+ VK_NULL_FUNC_ENTRY(vkFreeMemory, freeMemory),
+ VK_NULL_FUNC_ENTRY(vkMapMemory, mapMemory),
+ VK_NULL_FUNC_ENTRY(vkUnmapMemory, unmapMemory),
+ VK_NULL_FUNC_ENTRY(vkFlushMappedMemoryRanges, flushMappedMemoryRanges),
+ VK_NULL_FUNC_ENTRY(vkInvalidateMappedMemoryRanges, invalidateMappedMemoryRanges),
+ VK_NULL_FUNC_ENTRY(vkGetDeviceMemoryCommitment, getDeviceMemoryCommitment),
+ VK_NULL_FUNC_ENTRY(vkBindBufferMemory, bindBufferMemory),
+ VK_NULL_FUNC_ENTRY(vkBindImageMemory, bindImageMemory),
+ VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements, getBufferMemoryRequirements),
+ VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements, getImageMemoryRequirements),
+ VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements, getImageSparseMemoryRequirements),
+ VK_NULL_FUNC_ENTRY(vkQueueBindSparse, queueBindSparse),
+ VK_NULL_FUNC_ENTRY(vkCreateFence, createFence),
+ VK_NULL_FUNC_ENTRY(vkDestroyFence, destroyFence),
+ VK_NULL_FUNC_ENTRY(vkResetFences, resetFences),
+ VK_NULL_FUNC_ENTRY(vkGetFenceStatus, getFenceStatus),
+ VK_NULL_FUNC_ENTRY(vkWaitForFences, waitForFences),
+ VK_NULL_FUNC_ENTRY(vkCreateSemaphore, createSemaphore),
+ VK_NULL_FUNC_ENTRY(vkDestroySemaphore, destroySemaphore),
+ VK_NULL_FUNC_ENTRY(vkCreateEvent, createEvent),
+ VK_NULL_FUNC_ENTRY(vkDestroyEvent, destroyEvent),
+ VK_NULL_FUNC_ENTRY(vkGetEventStatus, getEventStatus),
+ VK_NULL_FUNC_ENTRY(vkSetEvent, setEvent),
+ VK_NULL_FUNC_ENTRY(vkResetEvent, resetEvent),
+ VK_NULL_FUNC_ENTRY(vkCreateQueryPool, createQueryPool),
+ VK_NULL_FUNC_ENTRY(vkDestroyQueryPool, destroyQueryPool),
+ VK_NULL_FUNC_ENTRY(vkGetQueryPoolResults, getQueryPoolResults),
+ VK_NULL_FUNC_ENTRY(vkCreateBuffer, createBuffer),
+ VK_NULL_FUNC_ENTRY(vkDestroyBuffer, destroyBuffer),
+ VK_NULL_FUNC_ENTRY(vkCreateBufferView, createBufferView),
+ VK_NULL_FUNC_ENTRY(vkDestroyBufferView, destroyBufferView),
+ VK_NULL_FUNC_ENTRY(vkCreateImage, createImage),
+ VK_NULL_FUNC_ENTRY(vkDestroyImage, destroyImage),
+ VK_NULL_FUNC_ENTRY(vkGetImageSubresourceLayout, getImageSubresourceLayout),
+ VK_NULL_FUNC_ENTRY(vkCreateImageView, createImageView),
+ VK_NULL_FUNC_ENTRY(vkDestroyImageView, destroyImageView),
+ VK_NULL_FUNC_ENTRY(vkCreateShaderModule, createShaderModule),
+ VK_NULL_FUNC_ENTRY(vkDestroyShaderModule, destroyShaderModule),
+ VK_NULL_FUNC_ENTRY(vkCreatePipelineCache, createPipelineCache),
+ VK_NULL_FUNC_ENTRY(vkDestroyPipelineCache, destroyPipelineCache),
+ VK_NULL_FUNC_ENTRY(vkGetPipelineCacheData, getPipelineCacheData),
+ VK_NULL_FUNC_ENTRY(vkMergePipelineCaches, mergePipelineCaches),
+ VK_NULL_FUNC_ENTRY(vkCreateGraphicsPipelines, createGraphicsPipelines),
+ VK_NULL_FUNC_ENTRY(vkCreateComputePipelines, createComputePipelines),
+ VK_NULL_FUNC_ENTRY(vkDestroyPipeline, destroyPipeline),
+ VK_NULL_FUNC_ENTRY(vkCreatePipelineLayout, createPipelineLayout),
+ VK_NULL_FUNC_ENTRY(vkDestroyPipelineLayout, destroyPipelineLayout),
+ VK_NULL_FUNC_ENTRY(vkCreateSampler, createSampler),
+ VK_NULL_FUNC_ENTRY(vkDestroySampler, destroySampler),
+ VK_NULL_FUNC_ENTRY(vkCreateDescriptorSetLayout, createDescriptorSetLayout),
+ VK_NULL_FUNC_ENTRY(vkDestroyDescriptorSetLayout, destroyDescriptorSetLayout),
+ VK_NULL_FUNC_ENTRY(vkCreateDescriptorPool, createDescriptorPool),
+ VK_NULL_FUNC_ENTRY(vkDestroyDescriptorPool, destroyDescriptorPool),
+ VK_NULL_FUNC_ENTRY(vkResetDescriptorPool, resetDescriptorPool),
+ VK_NULL_FUNC_ENTRY(vkAllocateDescriptorSets, allocateDescriptorSets),
+ VK_NULL_FUNC_ENTRY(vkFreeDescriptorSets, freeDescriptorSets),
+ VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSets, updateDescriptorSets),
+ VK_NULL_FUNC_ENTRY(vkCreateFramebuffer, createFramebuffer),
+ VK_NULL_FUNC_ENTRY(vkDestroyFramebuffer, destroyFramebuffer),
+ VK_NULL_FUNC_ENTRY(vkCreateRenderPass, createRenderPass),
+ VK_NULL_FUNC_ENTRY(vkDestroyRenderPass, destroyRenderPass),
+ VK_NULL_FUNC_ENTRY(vkGetRenderAreaGranularity, getRenderAreaGranularity),
+ VK_NULL_FUNC_ENTRY(vkCreateCommandPool, createCommandPool),
+ VK_NULL_FUNC_ENTRY(vkDestroyCommandPool, destroyCommandPool),
+ VK_NULL_FUNC_ENTRY(vkResetCommandPool, resetCommandPool),
+ VK_NULL_FUNC_ENTRY(vkAllocateCommandBuffers, allocateCommandBuffers),
+ VK_NULL_FUNC_ENTRY(vkFreeCommandBuffers, freeCommandBuffers),
+ VK_NULL_FUNC_ENTRY(vkBeginCommandBuffer, beginCommandBuffer),
+ VK_NULL_FUNC_ENTRY(vkEndCommandBuffer, endCommandBuffer),
+ VK_NULL_FUNC_ENTRY(vkResetCommandBuffer, resetCommandBuffer),
+ VK_NULL_FUNC_ENTRY(vkCmdBindPipeline, cmdBindPipeline),
+ VK_NULL_FUNC_ENTRY(vkCmdSetViewport, cmdSetViewport),
+ VK_NULL_FUNC_ENTRY(vkCmdSetScissor, cmdSetScissor),
+ VK_NULL_FUNC_ENTRY(vkCmdSetLineWidth, cmdSetLineWidth),
+ VK_NULL_FUNC_ENTRY(vkCmdSetDepthBias, cmdSetDepthBias),
+ VK_NULL_FUNC_ENTRY(vkCmdSetBlendConstants, cmdSetBlendConstants),
+ VK_NULL_FUNC_ENTRY(vkCmdSetDepthBounds, cmdSetDepthBounds),
+ VK_NULL_FUNC_ENTRY(vkCmdSetStencilCompareMask, cmdSetStencilCompareMask),
+ VK_NULL_FUNC_ENTRY(vkCmdSetStencilWriteMask, cmdSetStencilWriteMask),
+ VK_NULL_FUNC_ENTRY(vkCmdSetStencilReference, cmdSetStencilReference),
+ VK_NULL_FUNC_ENTRY(vkCmdBindDescriptorSets, cmdBindDescriptorSets),
+ VK_NULL_FUNC_ENTRY(vkCmdBindIndexBuffer, cmdBindIndexBuffer),
+ VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers, cmdBindVertexBuffers),
+ VK_NULL_FUNC_ENTRY(vkCmdDraw, cmdDraw),
+ VK_NULL_FUNC_ENTRY(vkCmdDrawIndexed, cmdDrawIndexed),
+ VK_NULL_FUNC_ENTRY(vkCmdDrawIndirect, cmdDrawIndirect),
+ VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirect, cmdDrawIndexedIndirect),
+ VK_NULL_FUNC_ENTRY(vkCmdDispatch, cmdDispatch),
+ VK_NULL_FUNC_ENTRY(vkCmdDispatchIndirect, cmdDispatchIndirect),
+ VK_NULL_FUNC_ENTRY(vkCmdCopyBuffer, cmdCopyBuffer),
+ VK_NULL_FUNC_ENTRY(vkCmdCopyImage, cmdCopyImage),
+ VK_NULL_FUNC_ENTRY(vkCmdBlitImage, cmdBlitImage),
+ VK_NULL_FUNC_ENTRY(vkCmdCopyBufferToImage, cmdCopyBufferToImage),
+ VK_NULL_FUNC_ENTRY(vkCmdCopyImageToBuffer, cmdCopyImageToBuffer),
+ VK_NULL_FUNC_ENTRY(vkCmdUpdateBuffer, cmdUpdateBuffer),
+ VK_NULL_FUNC_ENTRY(vkCmdFillBuffer, cmdFillBuffer),
+ VK_NULL_FUNC_ENTRY(vkCmdClearColorImage, cmdClearColorImage),
+ VK_NULL_FUNC_ENTRY(vkCmdClearDepthStencilImage, cmdClearDepthStencilImage),
+ VK_NULL_FUNC_ENTRY(vkCmdClearAttachments, cmdClearAttachments),
+ VK_NULL_FUNC_ENTRY(vkCmdResolveImage, cmdResolveImage),
+ VK_NULL_FUNC_ENTRY(vkCmdSetEvent, cmdSetEvent),
+ VK_NULL_FUNC_ENTRY(vkCmdResetEvent, cmdResetEvent),
+ VK_NULL_FUNC_ENTRY(vkCmdWaitEvents, cmdWaitEvents),
+ VK_NULL_FUNC_ENTRY(vkCmdPipelineBarrier, cmdPipelineBarrier),
+ VK_NULL_FUNC_ENTRY(vkCmdBeginQuery, cmdBeginQuery),
+ VK_NULL_FUNC_ENTRY(vkCmdEndQuery, cmdEndQuery),
+ VK_NULL_FUNC_ENTRY(vkCmdResetQueryPool, cmdResetQueryPool),
+ VK_NULL_FUNC_ENTRY(vkCmdWriteTimestamp, cmdWriteTimestamp),
+ VK_NULL_FUNC_ENTRY(vkCmdCopyQueryPoolResults, cmdCopyQueryPoolResults),
+ VK_NULL_FUNC_ENTRY(vkCmdPushConstants, cmdPushConstants),
+ VK_NULL_FUNC_ENTRY(vkCmdBeginRenderPass, cmdBeginRenderPass),
+ VK_NULL_FUNC_ENTRY(vkCmdNextSubpass, cmdNextSubpass),
+ VK_NULL_FUNC_ENTRY(vkCmdEndRenderPass, cmdEndRenderPass),
+ VK_NULL_FUNC_ENTRY(vkCmdExecuteCommands, cmdExecuteCommands),
+ VK_NULL_FUNC_ENTRY(vkCreateSwapchainKHR, createSwapchainKHR),
+ VK_NULL_FUNC_ENTRY(vkDestroySwapchainKHR, destroySwapchainKHR),
+ VK_NULL_FUNC_ENTRY(vkGetSwapchainImagesKHR, getSwapchainImagesKHR),
+ VK_NULL_FUNC_ENTRY(vkAcquireNextImageKHR, acquireNextImageKHR),
+ VK_NULL_FUNC_ENTRY(vkQueuePresentKHR, queuePresentKHR),
+ VK_NULL_FUNC_ENTRY(vkCreateSharedSwapchainsKHR, createSharedSwapchainsKHR),
+ VK_NULL_FUNC_ENTRY(vkTrimCommandPoolKHR, trimCommandPoolKHR),
+ VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectTagEXT, debugMarkerSetObjectTagEXT),
+ VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectNameEXT, debugMarkerSetObjectNameEXT),
+ VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerBeginEXT, cmdDebugMarkerBeginEXT),
+ VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerEndEXT, cmdDebugMarkerEndEXT),
+ VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerInsertEXT, cmdDebugMarkerInsertEXT),
+ VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountAMD, cmdDrawIndirectCountAMD),
+ VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCountAMD, cmdDrawIndexedIndirectCountAMD),
+ VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleNV, getMemoryWin32HandleNV),
+ VK_NULL_FUNC_ENTRY(vkCmdProcessCommandsNVX, cmdProcessCommandsNVX),
+ VK_NULL_FUNC_ENTRY(vkCmdReserveSpaceForCommandsNVX, cmdReserveSpaceForCommandsNVX),
+ VK_NULL_FUNC_ENTRY(vkCreateIndirectCommandsLayoutNVX, createIndirectCommandsLayoutNVX),
+ VK_NULL_FUNC_ENTRY(vkDestroyIndirectCommandsLayoutNVX, destroyIndirectCommandsLayoutNVX),
+ VK_NULL_FUNC_ENTRY(vkCreateObjectTableNVX, createObjectTableNVX),
+ VK_NULL_FUNC_ENTRY(vkDestroyObjectTableNVX, destroyObjectTableNVX),
+ VK_NULL_FUNC_ENTRY(vkRegisterObjectsNVX, registerObjectsNVX),
+ VK_NULL_FUNC_ENTRY(vkUnregisterObjectsNVX, unregisterObjectsNVX),
};
diff --git a/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl b/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
index a4edc30..c808a73 100644
--- a/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
@@ -1,147 +1,146 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*/
-virtual void destroyDevice (VkDevice device, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void getDeviceQueue (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue) const = 0;
-virtual VkResult queueSubmit (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const = 0;
-virtual VkResult queueWaitIdle (VkQueue queue) const = 0;
-virtual VkResult deviceWaitIdle (VkDevice device) const = 0;
-virtual VkResult allocateMemory (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const = 0;
-virtual void freeMemory (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult mapMemory (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const = 0;
-virtual void unmapMemory (VkDevice device, VkDeviceMemory memory) const = 0;
-virtual VkResult flushMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
-virtual VkResult invalidateMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
-virtual void getDeviceMemoryCommitment (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const = 0;
-virtual VkResult bindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
-virtual VkResult bindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
-virtual void getBufferMemoryRequirements (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const = 0;
-virtual void getImageMemoryRequirements (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const = 0;
-virtual void getImageSparseMemoryRequirements (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const = 0;
-virtual VkResult queueBindSparse (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const = 0;
-virtual VkResult createFence (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
-virtual void destroyFence (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult resetFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences) const = 0;
-virtual VkResult getFenceStatus (VkDevice device, VkFence fence) const = 0;
-virtual VkResult waitForFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout) const = 0;
-virtual VkResult createSemaphore (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const = 0;
-virtual void destroySemaphore (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createEvent (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const = 0;
-virtual void destroyEvent (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult getEventStatus (VkDevice device, VkEvent event) const = 0;
-virtual VkResult setEvent (VkDevice device, VkEvent event) const = 0;
-virtual VkResult resetEvent (VkDevice device, VkEvent event) const = 0;
-virtual VkResult createQueryPool (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const = 0;
-virtual void destroyQueryPool (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult getQueryPoolResults (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
-virtual VkResult createBuffer (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const = 0;
-virtual void destroyBuffer (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createBufferView (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const = 0;
-virtual void destroyBufferView (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createImage (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const = 0;
-virtual void destroyImage (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void getImageSubresourceLayout (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const = 0;
-virtual VkResult createImageView (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const = 0;
-virtual void destroyImageView (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createShaderModule (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) const = 0;
-virtual void destroyShaderModule (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createPipelineCache (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const = 0;
-virtual void destroyPipelineCache (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult getPipelineCacheData (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData) const = 0;
-virtual VkResult mergePipelineCaches (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches) const = 0;
-virtual VkResult createGraphicsPipelines (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
-virtual VkResult createComputePipelines (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
-virtual void destroyPipeline (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createPipelineLayout (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const = 0;
-virtual void destroyPipelineLayout (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createSampler (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const = 0;
-virtual void destroySampler (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createDescriptorSetLayout (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const = 0;
-virtual void destroyDescriptorSetLayout (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createDescriptorPool (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const = 0;
-virtual void destroyDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult resetDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const = 0;
-virtual VkResult allocateDescriptorSets (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const = 0;
-virtual VkResult freeDescriptorSets (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const = 0;
-virtual void updateDescriptorSets (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const = 0;
-virtual VkResult createFramebuffer (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const = 0;
-virtual void destroyFramebuffer (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createRenderPass (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const = 0;
-virtual void destroyRenderPass (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void getRenderAreaGranularity (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const = 0;
-virtual VkResult createCommandPool (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const = 0;
-virtual void destroyCommandPool (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult resetCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const = 0;
-virtual VkResult allocateCommandBuffers (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const = 0;
-virtual void freeCommandBuffers (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const = 0;
-virtual VkResult beginCommandBuffer (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const = 0;
-virtual VkResult endCommandBuffer (VkCommandBuffer commandBuffer) const = 0;
-virtual VkResult resetCommandBuffer (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const = 0;
-virtual void cmdBindPipeline (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const = 0;
-virtual void cmdSetViewport (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports) const = 0;
-virtual void cmdSetScissor (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors) const = 0;
-virtual void cmdSetLineWidth (VkCommandBuffer commandBuffer, float lineWidth) const = 0;
-virtual void cmdSetDepthBias (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const = 0;
-virtual void cmdSetBlendConstants (VkCommandBuffer commandBuffer, const float blendConstants[4]) const = 0;
-virtual void cmdSetDepthBounds (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const = 0;
-virtual void cmdSetStencilCompareMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask) const = 0;
-virtual void cmdSetStencilWriteMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask) const = 0;
-virtual void cmdSetStencilReference (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference) const = 0;
-virtual void cmdBindDescriptorSets (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets) const = 0;
-virtual void cmdBindIndexBuffer (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const = 0;
-virtual void cmdBindVertexBuffers (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const = 0;
-virtual void cmdDraw (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance) const = 0;
-virtual void cmdDrawIndexed (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance) const = 0;
-virtual void cmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const = 0;
-virtual void cmdDrawIndexedIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const = 0;
-virtual void cmdDispatch (VkCommandBuffer commandBuffer, deUint32 x, deUint32 y, deUint32 z) const = 0;
-virtual void cmdDispatchIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const = 0;
-virtual void cmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions) const = 0;
-virtual void cmdCopyImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions) const = 0;
-virtual void cmdBlitImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter) const = 0;
-virtual void cmdCopyBufferToImage (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions) const = 0;
-virtual void cmdCopyImageToBuffer (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions) const = 0;
-virtual void cmdUpdateBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const = 0;
-virtual void cmdFillBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data) const = 0;
-virtual void cmdClearColorImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const = 0;
-virtual void cmdClearDepthStencilImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const = 0;
-virtual void cmdClearAttachments (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects) const = 0;
-virtual void cmdResolveImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions) const = 0;
-virtual void cmdSetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const = 0;
-virtual void cmdResetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const = 0;
-virtual void cmdWaitEvents (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const = 0;
-virtual void cmdPipelineBarrier (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const = 0;
-virtual void cmdBeginQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags) const = 0;
-virtual void cmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query) const = 0;
-virtual void cmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount) const = 0;
-virtual void cmdWriteTimestamp (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query) const = 0;
-virtual void cmdCopyQueryPoolResults (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
-virtual void cmdPushConstants (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues) const = 0;
-virtual void cmdBeginRenderPass (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const = 0;
-virtual void cmdNextSubpass (VkCommandBuffer commandBuffer, VkSubpassContents contents) const = 0;
-virtual void cmdEndRenderPass (VkCommandBuffer commandBuffer) const = 0;
-virtual void cmdExecuteCommands (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const = 0;
-virtual VkResult createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const = 0;
-virtual void destroySwapchainKHR (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages) const = 0;
-virtual VkResult acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const = 0;
-virtual VkResult queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const = 0;
-virtual VkResult createSharedSwapchainsKHR (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const = 0;
-virtual void trimCommandPoolKHR (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const = 0;
-virtual VkResult debugMarkerSetObjectTagEXT (VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo) const = 0;
-virtual VkResult debugMarkerSetObjectNameEXT (VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo) const = 0;
-virtual void cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
-virtual void cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer) const = 0;
-virtual void cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
-virtual void cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
-virtual void cmdDrawIndexedIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
-virtual VkResult getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const = 0;
-virtual void cmdProcessCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const = 0;
-virtual void cmdReserveSpaceForCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const = 0;
-virtual VkResult createIndirectCommandsLayoutNVX (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const = 0;
-virtual void destroyIndirectCommandsLayoutNVX (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult createObjectTableNVX (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const = 0;
-virtual void destroyObjectTableNVX (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult registerObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const = 0;
-virtual VkResult unregisterObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const = 0;
-virtual void getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const = 0;
+virtual void destroyDevice (VkDevice device, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void getDeviceQueue (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue) const = 0;
+virtual VkResult queueSubmit (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const = 0;
+virtual VkResult queueWaitIdle (VkQueue queue) const = 0;
+virtual VkResult deviceWaitIdle (VkDevice device) const = 0;
+virtual VkResult allocateMemory (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const = 0;
+virtual void freeMemory (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult mapMemory (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const = 0;
+virtual void unmapMemory (VkDevice device, VkDeviceMemory memory) const = 0;
+virtual VkResult flushMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
+virtual VkResult invalidateMappedMemoryRanges (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
+virtual void getDeviceMemoryCommitment (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const = 0;
+virtual VkResult bindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
+virtual VkResult bindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
+virtual void getBufferMemoryRequirements (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const = 0;
+virtual void getImageMemoryRequirements (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const = 0;
+virtual void getImageSparseMemoryRequirements (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const = 0;
+virtual VkResult queueBindSparse (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const = 0;
+virtual VkResult createFence (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
+virtual void destroyFence (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult resetFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences) const = 0;
+virtual VkResult getFenceStatus (VkDevice device, VkFence fence) const = 0;
+virtual VkResult waitForFences (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout) const = 0;
+virtual VkResult createSemaphore (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const = 0;
+virtual void destroySemaphore (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createEvent (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const = 0;
+virtual void destroyEvent (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult getEventStatus (VkDevice device, VkEvent event) const = 0;
+virtual VkResult setEvent (VkDevice device, VkEvent event) const = 0;
+virtual VkResult resetEvent (VkDevice device, VkEvent event) const = 0;
+virtual VkResult createQueryPool (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const = 0;
+virtual void destroyQueryPool (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult getQueryPoolResults (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
+virtual VkResult createBuffer (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const = 0;
+virtual void destroyBuffer (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createBufferView (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const = 0;
+virtual void destroyBufferView (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createImage (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const = 0;
+virtual void destroyImage (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void getImageSubresourceLayout (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const = 0;
+virtual VkResult createImageView (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const = 0;
+virtual void destroyImageView (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createShaderModule (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) const = 0;
+virtual void destroyShaderModule (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createPipelineCache (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const = 0;
+virtual void destroyPipelineCache (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult getPipelineCacheData (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData) const = 0;
+virtual VkResult mergePipelineCaches (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches) const = 0;
+virtual VkResult createGraphicsPipelines (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
+virtual VkResult createComputePipelines (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
+virtual void destroyPipeline (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createPipelineLayout (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const = 0;
+virtual void destroyPipelineLayout (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createSampler (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const = 0;
+virtual void destroySampler (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createDescriptorSetLayout (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const = 0;
+virtual void destroyDescriptorSetLayout (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createDescriptorPool (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const = 0;
+virtual void destroyDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult resetDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const = 0;
+virtual VkResult allocateDescriptorSets (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const = 0;
+virtual VkResult freeDescriptorSets (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const = 0;
+virtual void updateDescriptorSets (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const = 0;
+virtual VkResult createFramebuffer (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const = 0;
+virtual void destroyFramebuffer (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createRenderPass (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const = 0;
+virtual void destroyRenderPass (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void getRenderAreaGranularity (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const = 0;
+virtual VkResult createCommandPool (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const = 0;
+virtual void destroyCommandPool (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult resetCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const = 0;
+virtual VkResult allocateCommandBuffers (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const = 0;
+virtual void freeCommandBuffers (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const = 0;
+virtual VkResult beginCommandBuffer (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const = 0;
+virtual VkResult endCommandBuffer (VkCommandBuffer commandBuffer) const = 0;
+virtual VkResult resetCommandBuffer (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const = 0;
+virtual void cmdBindPipeline (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const = 0;
+virtual void cmdSetViewport (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports) const = 0;
+virtual void cmdSetScissor (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors) const = 0;
+virtual void cmdSetLineWidth (VkCommandBuffer commandBuffer, float lineWidth) const = 0;
+virtual void cmdSetDepthBias (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const = 0;
+virtual void cmdSetBlendConstants (VkCommandBuffer commandBuffer, const float blendConstants[4]) const = 0;
+virtual void cmdSetDepthBounds (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const = 0;
+virtual void cmdSetStencilCompareMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask) const = 0;
+virtual void cmdSetStencilWriteMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask) const = 0;
+virtual void cmdSetStencilReference (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference) const = 0;
+virtual void cmdBindDescriptorSets (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets) const = 0;
+virtual void cmdBindIndexBuffer (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const = 0;
+virtual void cmdBindVertexBuffers (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const = 0;
+virtual void cmdDraw (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance) const = 0;
+virtual void cmdDrawIndexed (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance) const = 0;
+virtual void cmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const = 0;
+virtual void cmdDrawIndexedIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const = 0;
+virtual void cmdDispatch (VkCommandBuffer commandBuffer, deUint32 x, deUint32 y, deUint32 z) const = 0;
+virtual void cmdDispatchIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const = 0;
+virtual void cmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions) const = 0;
+virtual void cmdCopyImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions) const = 0;
+virtual void cmdBlitImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter) const = 0;
+virtual void cmdCopyBufferToImage (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions) const = 0;
+virtual void cmdCopyImageToBuffer (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions) const = 0;
+virtual void cmdUpdateBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const = 0;
+virtual void cmdFillBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data) const = 0;
+virtual void cmdClearColorImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const = 0;
+virtual void cmdClearDepthStencilImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const = 0;
+virtual void cmdClearAttachments (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects) const = 0;
+virtual void cmdResolveImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions) const = 0;
+virtual void cmdSetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const = 0;
+virtual void cmdResetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const = 0;
+virtual void cmdWaitEvents (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const = 0;
+virtual void cmdPipelineBarrier (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const = 0;
+virtual void cmdBeginQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags) const = 0;
+virtual void cmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query) const = 0;
+virtual void cmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount) const = 0;
+virtual void cmdWriteTimestamp (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query) const = 0;
+virtual void cmdCopyQueryPoolResults (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
+virtual void cmdPushConstants (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues) const = 0;
+virtual void cmdBeginRenderPass (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const = 0;
+virtual void cmdNextSubpass (VkCommandBuffer commandBuffer, VkSubpassContents contents) const = 0;
+virtual void cmdEndRenderPass (VkCommandBuffer commandBuffer) const = 0;
+virtual void cmdExecuteCommands (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const = 0;
+virtual VkResult createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const = 0;
+virtual void destroySwapchainKHR (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages) const = 0;
+virtual VkResult acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const = 0;
+virtual VkResult queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const = 0;
+virtual VkResult createSharedSwapchainsKHR (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const = 0;
+virtual void trimCommandPoolKHR (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags) const = 0;
+virtual VkResult debugMarkerSetObjectTagEXT (VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo) const = 0;
+virtual VkResult debugMarkerSetObjectNameEXT (VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo) const = 0;
+virtual void cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
+virtual void cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer) const = 0;
+virtual void cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
+virtual void cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
+virtual void cmdDrawIndexedIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
+virtual VkResult getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const = 0;
+virtual void cmdProcessCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const = 0;
+virtual void cmdReserveSpaceForCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const = 0;
+virtual VkResult createIndirectCommandsLayoutNVX (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const = 0;
+virtual void destroyIndirectCommandsLayoutNVX (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult createObjectTableNVX (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const = 0;
+virtual void destroyObjectTableNVX (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult registerObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const = 0;
+virtual VkResult unregisterObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const = 0;
diff --git a/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl b/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
index 1793be0..0809ccf 100644
--- a/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
@@ -48,3 +48,4 @@
virtual void destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const = 0;
virtual void debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const = 0;
virtual VkResult getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const = 0;
+virtual void getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const = 0;
diff --git a/external/vulkancts/modules/vulkan/api/CMakeLists.txt b/external/vulkancts/modules/vulkan/api/CMakeLists.txt
index 55a55c0..4e85c1c 100644
--- a/external/vulkancts/modules/vulkan/api/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/api/CMakeLists.txt
@@ -37,6 +37,8 @@
vktApiNullHandleTests.hpp
vktApiGranularityTests.cpp
vktApiGranularityTests.hpp
+ vktApiGetMemoryCommitment.cpp
+ vktApiGetMemoryCommitment.hpp
)
set(DEQP_VK_API_LIBS
diff --git a/external/vulkancts/modules/vulkan/api/vktApiBufferTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiBufferTests.cpp
index 8ccd621..c34b9fd 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiBufferTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiBufferTests.cpp
@@ -199,13 +199,6 @@
BufferCaseParameters m_testCase;
};
-inline VkDeviceSize alignDeviceSize (VkDeviceSize val, VkDeviceSize align)
-{
- DE_ASSERT(deIsPowerOfTwo64(align));
- DE_ASSERT(val + align >= val); // crash on overflow
- return (val + align - 1) & ~(align - 1);
-}
-
tcu::TestStatus BufferTestInstance::bufferCreateAndAllocTest (VkDeviceSize size)
{
const VkPhysicalDevice vkPhysicalDevice = getPhysicalDevice();
@@ -243,7 +236,7 @@
const deUint32 heapTypeIndex = (deUint32)deCtz32(memReqs.memoryTypeBits);
const VkMemoryType memoryType = memoryProperties.memoryTypes[heapTypeIndex];
const VkMemoryHeap memoryHeap = memoryProperties.memoryHeaps[memoryType.heapIndex];
- const VkDeviceSize maxBufferSize = alignDeviceSize(memoryHeap.size >> 1, memReqs.alignment);
+ const VkDeviceSize maxBufferSize = deAlign64(memoryHeap.size >> 1, memReqs.alignment);
const deUint32 shrinkBits = 4; // number of bits to shift when reducing the size with each iteration
size = std::min(size, maxBufferSize);
@@ -261,7 +254,7 @@
if (result != VK_SUCCESS)
{
- size = alignDeviceSize(size >> shrinkBits, memReqs.alignment);
+ size = deAlign64(size >> shrinkBits, memReqs.alignment);
if (size == 0 || bufferParams.size == memReqs.alignment)
return tcu::TestStatus::fail("Buffer creation failed! (" + de::toString(getResultName(result)) + ")");
@@ -298,7 +291,7 @@
if (result != VK_SUCCESS)
{
- size = alignDeviceSize(size >> shrinkBits, memReqs.alignment);
+ size = deAlign64(size >> shrinkBits, memReqs.alignment);
if (size == 0 || memReqs.size == memReqs.alignment)
return tcu::TestStatus::fail("Unable to allocate " + de::toString(memReqs.size) + " bytes of memory");
diff --git a/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
index 6a89a1d..a2a46da 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
@@ -32,6 +32,7 @@
#include "tcuTextureUtil.hpp"
#include "tcuVectorType.hpp"
#include "tcuVectorUtil.hpp"
+#include "tcuTexLookupVerifier.hpp"
#include "vkImageUtil.hpp"
#include "vkMemUtil.hpp"
@@ -269,52 +270,81 @@
void CopiesAndBlittingTestInstance::generateBuffer (tcu::PixelBufferAccess buffer, int width, int height, int depth, FillMode mode)
{
+ const tcu::TextureChannelClass channelClass = tcu::getTextureChannelClass(buffer.getFormat().type);
+ tcu::Vec4 maxValue (1.0f);
+
+ if (buffer.getFormat().order == tcu::TextureFormat::S)
+ {
+ // Stencil-only is stored in the first component. Stencil is always 8 bits.
+ maxValue.x() = 1 << 8;
+ }
+ else if (buffer.getFormat().order == tcu::TextureFormat::DS)
+ {
+ // In a combined format, fillWithComponentGradients expects stencil in the fourth component.
+ maxValue.w() = 1 << 8;
+ }
+ else if (channelClass == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER || channelClass == tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER)
+ {
+ // The tcu::Vectors we use as pixels are 32-bit, so clamp to that.
+ const tcu::IVec4 bits = tcu::min(tcu::getTextureFormatBitDepth(buffer.getFormat()), tcu::IVec4(32));
+ const int signBit = (channelClass == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER ? 1 : 0);
+
+ for (int i = 0; i < 4; ++i)
+ {
+ if (bits[i] != 0)
+ maxValue[i] = static_cast<float>((1 << (bits[i] - signBit)) - 1);
+ }
+ }
+
if (mode == FILL_MODE_GRADIENT)
{
- tcu::fillWithComponentGradients(buffer, tcu::Vec4(0.0f, 0.0f, 0.0f, 0.0f), tcu::Vec4(1.0f, 1.0f, 1.0f, 1.0f));
+ tcu::fillWithComponentGradients(buffer, tcu::Vec4(0.0f, 0.0f, 0.0f, 0.0f), maxValue);
return;
}
- const tcu::Vec4 redColor (1.0, 0.0, 0.0, 1.0);
- const tcu::Vec4 greenColor (0.0, 1.0, 0.0, 1.0);
- const tcu::Vec4 blueColor (0.0, 0.0, 1.0, 1.0);
- const tcu::Vec4 whiteColor (1.0, 1.0, 1.0, 1.0);
+ const tcu::Vec4 redColor (maxValue.x(), 0.0, 0.0, maxValue.w());
+ const tcu::Vec4 greenColor (0.0, maxValue.y(), 0.0, maxValue.w());
+ const tcu::Vec4 blueColor (0.0, 0.0, maxValue.z(), maxValue.w());
+ const tcu::Vec4 whiteColor (maxValue.x(), maxValue.y(), maxValue.z(), maxValue.w());
- for (int z = 0; z < depth; z++)
+ for (int z = 0; z < depth; ++z)
+ for (int y = 0; y < height; ++y)
+ for (int x = 0; x < width; ++x)
{
- for (int y = 0; y < height; y++)
+ switch (mode)
{
- for (int x = 0; x < width; x++)
- {
- switch (mode)
+ case FILL_MODE_WHITE:
+ if (tcu::isCombinedDepthStencilType(buffer.getFormat().type))
{
- case FILL_MODE_WHITE:
- if (tcu::isCombinedDepthStencilType(buffer.getFormat().type))
- {
- buffer.setPixDepth(1.0f, x, y, z);
- if (tcu::hasStencilComponent(buffer.getFormat().order))
- buffer.setPixStencil(255, x, y, z);
- }
- else
- buffer.setPixel(whiteColor, x, y, z);
- break;
- case FILL_MODE_RED:
- if (tcu::isCombinedDepthStencilType(buffer.getFormat().type))
- {
- buffer.setPixDepth(redColor[x % 4], x, y, z);
- if (tcu::hasStencilComponent(buffer.getFormat().order))
- buffer.setPixStencil(255 * (int)redColor[y % 4], x, y, z);
- }
- else
- buffer.setPixel(redColor, x, y, z);
- break;
- case FILL_MODE_MULTISAMPLE:
- buffer.setPixel((x == y) ? tcu::Vec4(0.0, 0.5, 0.5, 1.0) : ((x > y) ? greenColor : blueColor), x, y, z);
- break;
- default:
- break;
+ buffer.setPixDepth(1.0f, x, y, z);
+ if (tcu::hasStencilComponent(buffer.getFormat().order))
+ buffer.setPixStencil(255, x, y, z);
}
+ else
+ buffer.setPixel(whiteColor, x, y, z);
+ break;
+
+ case FILL_MODE_RED:
+ if (tcu::isCombinedDepthStencilType(buffer.getFormat().type))
+ {
+ buffer.setPixDepth(redColor[x % 4], x, y, z);
+ if (tcu::hasStencilComponent(buffer.getFormat().order))
+ buffer.setPixStencil(255 * (int)redColor[y % 4], x, y, z);
+ }
+ else
+ buffer.setPixel(redColor, x, y, z);
+ break;
+
+ case FILL_MODE_MULTISAMPLE:
+ {
+ float xScaled = static_cast<float>(x) / static_cast<float>(width);
+ float yScaled = static_cast<float>(y) / static_cast<float>(height);
+ buffer.setPixel((xScaled == yScaled) ? tcu::Vec4(0.0, 0.5, 0.5, 1.0) : ((xScaled > yScaled) ? greenColor : blueColor), x, y, z);
+ break;
}
+
+ default:
+ break;
}
}
}
@@ -1597,10 +1627,13 @@
virtual void copyRegionToTextureLevel (tcu::ConstPixelBufferAccess src, tcu::PixelBufferAccess dst, CopyRegion region);
virtual void generateExpectedResult (void);
private:
- bool checkClampedAndUnclampedResult (const tcu::ConstPixelBufferAccess& result,
+ bool checkLinearFilteredResult (const tcu::ConstPixelBufferAccess& result,
const tcu::ConstPixelBufferAccess& clampedReference,
const tcu::ConstPixelBufferAccess& unclampedReference,
- VkImageAspectFlagBits aspect);
+ const tcu::TextureFormat& sourceFormat);
+ bool checkNearestFilteredResult (const tcu::ConstPixelBufferAccess& result,
+ const tcu::ConstPixelBufferAccess& source);
+
Move<VkImage> m_source;
de::MovePtr<Allocation> m_sourceImageAlloc;
Move<VkImage> m_destination;
@@ -1853,38 +1886,16 @@
return threshold;
}
-tcu::TextureFormat getFormatAspect (VkFormat format, VkImageAspectFlagBits aspect)
-{
- const tcu::TextureFormat baseFormat = mapVkFormat(format);
-
- if (isCombinedDepthStencilType(baseFormat.type))
- {
- if (aspect == VK_IMAGE_ASPECT_DEPTH_BIT)
- return getEffectiveDepthStencilTextureFormat(baseFormat, tcu::Sampler::MODE_DEPTH);
- else if (aspect == VK_IMAGE_ASPECT_STENCIL_BIT)
- return getEffectiveDepthStencilTextureFormat(baseFormat, tcu::Sampler::MODE_STENCIL);
- else
- DE_FATAL("Invalid aspect");
- }
-
- return baseFormat;
-}
-
-bool BlittingImages::checkClampedAndUnclampedResult (const tcu::ConstPixelBufferAccess& result,
- const tcu::ConstPixelBufferAccess& clampedExpected,
- const tcu::ConstPixelBufferAccess& unclampedExpected,
- VkImageAspectFlagBits aspect)
+bool BlittingImages::checkLinearFilteredResult (const tcu::ConstPixelBufferAccess& result,
+ const tcu::ConstPixelBufferAccess& clampedExpected,
+ const tcu::ConstPixelBufferAccess& unclampedExpected,
+ const tcu::TextureFormat& srcFormat)
{
tcu::TestLog& log (m_context.getTestContext().getLog());
- const bool isLinear = m_params.filter == VK_FILTER_LINEAR;
- const tcu::TextureFormat srcFormat = getFormatAspect(m_params.src.image.format, aspect);
const tcu::TextureFormat dstFormat = result.getFormat();
bool isOk = false;
- DE_ASSERT(dstFormat == getFormatAspect(m_params.dst.image.format, aspect));
-
- if (isLinear)
- log << tcu::TestLog::Section("ClampedSourceImage", "Region with clamped edges on source image.");
+ log << tcu::TestLog::Section("ClampedSourceImage", "Region with clamped edges on source image.");
if (isFloatFormat(dstFormat))
{
@@ -1894,11 +1905,9 @@
const tcu::Vec4 threshold = tcu::max(srcMaxDiff, dstMaxDiff);
isOk = tcu::floatThresholdCompare(log, "Compare", "Result comparsion", clampedExpected, result, threshold, tcu::COMPARE_LOG_RESULT);
+ log << tcu::TestLog::EndSection;
- if (isLinear)
- log << tcu::TestLog::EndSection;
-
- if (!isOk && isLinear)
+ if (!isOk)
{
log << tcu::TestLog::Section("NonClampedSourceImage", "Region with non-clamped edges on source image.");
isOk = tcu::floatThresholdCompare(log, "Compare", "Result comparsion", unclampedExpected, result, threshold, tcu::COMPARE_LOG_RESULT);
@@ -1914,61 +1923,318 @@
threshold[i] = de::max( (0x1 << bitDepth[i]) / 256, 1);
isOk = tcu::intThresholdCompare(log, "Compare", "Result comparsion", clampedExpected, result, threshold, tcu::COMPARE_LOG_RESULT);
+ log << tcu::TestLog::EndSection;
- if (isLinear)
- log << tcu::TestLog::EndSection;
-
- if (!isOk && isLinear)
+ if (!isOk)
{
log << tcu::TestLog::Section("NonClampedSourceImage", "Region with non-clamped edges on source image.");
isOk = tcu::intThresholdCompare(log, "Compare", "Result comparsion", unclampedExpected, result, threshold, tcu::COMPARE_LOG_RESULT);
log << tcu::TestLog::EndSection;
}
}
+
return isOk;
}
+//! Utility to encapsulate coordinate computation and loops.
+struct CompareEachPixelInEachRegion
+{
+ virtual ~CompareEachPixelInEachRegion (void) {}
+ virtual bool compare (const void* pUserData, const int x, const int y, const tcu::Vec2& srcNormCoord) const = 0;
+
+ bool forEach (const void* pUserData,
+ const std::vector<CopyRegion>& regions,
+ const int sourceWidth,
+ const int sourceHeight,
+ const tcu::PixelBufferAccess& errorMask) const
+ {
+ bool compareOk = true;
+
+ for (std::vector<CopyRegion>::const_iterator regionIter = regions.begin(); regionIter != regions.end(); ++regionIter)
+ {
+ const VkImageBlit& blit = regionIter->imageBlit;
+
+ const int dx = deSign32(blit.dstOffsets[1].x - blit.dstOffsets[0].x);
+ const int dy = deSign32(blit.dstOffsets[1].y - blit.dstOffsets[0].y);
+ const float xScale = static_cast<float>(blit.srcOffsets[1].x - blit.srcOffsets[0].x) / static_cast<float>(blit.dstOffsets[1].x - blit.dstOffsets[0].x);
+ const float yScale = static_cast<float>(blit.srcOffsets[1].y - blit.srcOffsets[0].y) / static_cast<float>(blit.dstOffsets[1].y - blit.dstOffsets[0].y);
+ const float srcInvW = 1.0f / static_cast<float>(sourceWidth);
+ const float srcInvH = 1.0f / static_cast<float>(sourceHeight);
+
+ for (int y = blit.dstOffsets[0].y; y < blit.dstOffsets[1].y; y += dy)
+ for (int x = blit.dstOffsets[0].x; x < blit.dstOffsets[1].x; x += dx)
+ {
+ const tcu::Vec2 srcNormCoord
+ (
+ (xScale * (static_cast<float>(x - blit.dstOffsets[0].x) + 0.5f) + static_cast<float>(blit.srcOffsets[0].x)) * srcInvW,
+ (yScale * (static_cast<float>(y - blit.dstOffsets[0].y) + 0.5f) + static_cast<float>(blit.srcOffsets[0].y)) * srcInvH
+ );
+
+ if (!compare(pUserData, x, y, srcNormCoord))
+ {
+ errorMask.setPixel(tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f), x, y);
+ compareOk = false;
+ }
+ }
+ }
+ return compareOk;
+ }
+};
+
+tcu::Vec4 getFloatOrFixedPointFormatThreshold (const tcu::TextureFormat& format)
+{
+ const tcu::TextureChannelClass channelClass = tcu::getTextureChannelClass(format.type);
+ const tcu::IVec4 bitDepth = tcu::getTextureFormatBitDepth(format);
+
+ if (channelClass == tcu::TEXTURECHANNELCLASS_FLOATING_POINT)
+ {
+ return getFormatThreshold(format);
+ }
+ else if (channelClass == tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT ||
+ channelClass == tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT)
+ {
+ const bool isSigned = (channelClass == tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT);
+ const float range = isSigned ? 1.0f - (-1.0f)
+ : 1.0f - 0.0f;
+
+ tcu::Vec4 v;
+ for (int i = 0; i < 4; ++i)
+ {
+ if (bitDepth[i] == 0)
+ v[i] = 1.0f;
+ else
+ v[i] = range / static_cast<float>((1 << bitDepth[i]) - 1);
+ }
+ return v;
+ }
+ else
+ {
+ DE_ASSERT(0);
+ return tcu::Vec4();
+ }
+}
+
+bool floatNearestBlitCompare (const tcu::ConstPixelBufferAccess& source,
+ const tcu::ConstPixelBufferAccess& result,
+ const tcu::PixelBufferAccess& errorMask,
+ const std::vector<CopyRegion>& regions)
+{
+ const tcu::Sampler sampler (tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::NEAREST, tcu::Sampler::NEAREST);
+ tcu::LookupPrecision precision;
+
+ {
+ const tcu::IVec4 dstBitDepth = tcu::getTextureFormatBitDepth(result.getFormat());
+ const tcu::Vec4 srcMaxDiff = getFloatOrFixedPointFormatThreshold(source.getFormat());
+ const tcu::Vec4 dstMaxDiff = getFloatOrFixedPointFormatThreshold(result.getFormat());
+
+ precision.colorMask = tcu::notEqual(dstBitDepth, tcu::IVec4(0));
+ precision.colorThreshold = tcu::max(srcMaxDiff, dstMaxDiff);
+ }
+
+ const struct Capture
+ {
+ const tcu::ConstPixelBufferAccess& source;
+ const tcu::ConstPixelBufferAccess& result;
+ const tcu::Sampler& sampler;
+ const tcu::LookupPrecision& precision;
+ const bool isSRGB;
+ } capture =
+ {
+ source, result, sampler, precision, tcu::isSRGB(result.getFormat())
+ };
+
+ const struct Loop : CompareEachPixelInEachRegion
+ {
+ Loop (void) {}
+
+ bool compare (const void* pUserData, const int x, const int y, const tcu::Vec2& srcNormCoord) const
+ {
+ const Capture& c = *static_cast<const Capture*>(pUserData);
+ const tcu::TexLookupScaleMode lookupScaleDontCare = tcu::TEX_LOOKUP_SCALE_MINIFY;
+ tcu::Vec4 dstColor = c.result.getPixel(x, y);
+
+ // TexLookupVerifier performs a conversion to linear space, so we have to as well
+ if (c.isSRGB)
+ dstColor = tcu::sRGBToLinear(dstColor);
+
+ return tcu::isLevel2DLookupResultValid(c.source, c.sampler, lookupScaleDontCare, c.precision, srcNormCoord, 0, dstColor);
+ }
+ } loop;
+
+ return loop.forEach(&capture, regions, source.getWidth(), source.getHeight(), errorMask);
+}
+
+bool intNearestBlitCompare (const tcu::ConstPixelBufferAccess& source,
+ const tcu::ConstPixelBufferAccess& result,
+ const tcu::PixelBufferAccess& errorMask,
+ const std::vector<CopyRegion>& regions)
+{
+ const tcu::Sampler sampler (tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::NEAREST, tcu::Sampler::NEAREST);
+ tcu::IntLookupPrecision precision;
+
+ {
+ const tcu::IVec4 srcBitDepth = tcu::getTextureFormatBitDepth(source.getFormat());
+ const tcu::IVec4 dstBitDepth = tcu::getTextureFormatBitDepth(result.getFormat());
+
+ for (deUint32 i = 0; i < 4; ++i) {
+ precision.colorThreshold[i] = de::max(de::max(srcBitDepth[i] / 8, dstBitDepth[i] / 8), 1);
+ precision.colorMask[i] = dstBitDepth[i] != 0;
+ }
+ }
+
+ // Prepare a source image with a matching (converted) pixel format. Ideally, we would've used a wrapper that
+ // does the conversion on the fly without wasting memory, but this approach is more straightforward.
+ tcu::TextureLevel convertedSourceTexture (result.getFormat(), source.getWidth(), source.getHeight());
+ const tcu::PixelBufferAccess convertedSource = convertedSourceTexture.getAccess();
+
+ for (int y = 0; y < source.getHeight(); ++y)
+ for (int x = 0; x < source.getWidth(); ++x)
+ convertedSource.setPixel(source.getPixelInt(x, y), x, y); // will be clamped to max. representable value
+
+ const struct Capture
+ {
+ const tcu::ConstPixelBufferAccess& source;
+ const tcu::ConstPixelBufferAccess& result;
+ const tcu::Sampler& sampler;
+ const tcu::IntLookupPrecision& precision;
+ } capture =
+ {
+ convertedSource, result, sampler, precision
+ };
+
+ const struct Loop : CompareEachPixelInEachRegion
+ {
+ Loop (void) {}
+
+ bool compare (const void* pUserData, const int x, const int y, const tcu::Vec2& srcNormCoord) const
+ {
+ const Capture& c = *static_cast<const Capture*>(pUserData);
+ const tcu::TexLookupScaleMode lookupScaleDontCare = tcu::TEX_LOOKUP_SCALE_MINIFY;
+ const tcu::IVec4 dstColor = c.result.getPixelInt(x, y);
+
+ return tcu::isLevel2DLookupResultValid(c.source, c.sampler, lookupScaleDontCare, c.precision, srcNormCoord, 0, dstColor);
+ }
+ } loop;
+
+ return loop.forEach(&capture, regions, source.getWidth(), source.getHeight(), errorMask);
+}
+
+bool BlittingImages::checkNearestFilteredResult (const tcu::ConstPixelBufferAccess& result,
+ const tcu::ConstPixelBufferAccess& source)
+{
+ tcu::TestLog& log (m_context.getTestContext().getLog());
+ const tcu::TextureFormat dstFormat = result.getFormat();
+ const tcu::TextureChannelClass dstChannelClass = tcu::getTextureChannelClass(dstFormat.type);
+
+ tcu::TextureLevel errorMaskStorage (tcu::TextureFormat(tcu::TextureFormat::RGB, tcu::TextureFormat::UNORM_INT8), result.getWidth(), result.getHeight());
+ tcu::PixelBufferAccess errorMask = errorMaskStorage.getAccess();
+ tcu::Vec4 pixelBias (0.0f, 0.0f, 0.0f, 0.0f);
+ tcu::Vec4 pixelScale (1.0f, 1.0f, 1.0f, 1.0f);
+ bool ok = false;
+
+ tcu::clear(errorMask, tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0));
+
+ if (dstChannelClass == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER ||
+ dstChannelClass == tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER)
+ {
+ ok = intNearestBlitCompare(source, result, errorMask, m_params.regions);
+ }
+ else
+ ok = floatNearestBlitCompare(source, result, errorMask, m_params.regions);
+
+ if (result.getFormat() != tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8))
+ tcu::computePixelScaleBias(result, pixelScale, pixelBias);
+
+ if (!ok)
+ {
+ log << tcu::TestLog::ImageSet("Compare", "Result comparsion")
+ << tcu::TestLog::Image("Result", "Result", result, pixelScale, pixelBias)
+ << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask)
+ << tcu::TestLog::EndImageSet;
+ }
+ else
+ {
+ log << tcu::TestLog::ImageSet("Compare", "Result comparsion")
+ << tcu::TestLog::Image("Result", "Result", result, pixelScale, pixelBias)
+ << tcu::TestLog::EndImageSet;
+ }
+
+ return ok;
+}
+
tcu::TestStatus BlittingImages::checkTestResult (tcu::ConstPixelBufferAccess result)
{
DE_ASSERT(m_params.filter == VK_FILTER_NEAREST || m_params.filter == VK_FILTER_LINEAR);
+ const std::string failMessage("Result image is incorrect");
- if (tcu::isCombinedDepthStencilType(result.getFormat().type))
+ if (m_params.filter == VK_FILTER_LINEAR)
{
- if (tcu::hasDepthComponent(result.getFormat().order))
+ if (tcu::isCombinedDepthStencilType(result.getFormat().type))
{
- const tcu::Sampler::DepthStencilMode mode = tcu::Sampler::MODE_DEPTH;
- const tcu::ConstPixelBufferAccess depthResult = tcu::getEffectiveDepthStencilAccess(result, mode);
- const tcu::ConstPixelBufferAccess clampedExpected = tcu::getEffectiveDepthStencilAccess(m_expectedTextureLevel->getAccess(), mode);
- const tcu::ConstPixelBufferAccess unclampedExpected = m_params.filter == VK_FILTER_LINEAR ? tcu::getEffectiveDepthStencilAccess(m_unclampedExpectedTextureLevel->getAccess(), mode) : tcu::ConstPixelBufferAccess();
-
- if (!checkClampedAndUnclampedResult(depthResult, clampedExpected, unclampedExpected, VK_IMAGE_ASPECT_DEPTH_BIT))
+ if (tcu::hasDepthComponent(result.getFormat().order))
{
- return tcu::TestStatus::fail("CopiesAndBlitting test");
+ const tcu::Sampler::DepthStencilMode mode = tcu::Sampler::MODE_DEPTH;
+ const tcu::ConstPixelBufferAccess depthResult = tcu::getEffectiveDepthStencilAccess(result, mode);
+ const tcu::ConstPixelBufferAccess clampedExpected = tcu::getEffectiveDepthStencilAccess(m_expectedTextureLevel->getAccess(), mode);
+ const tcu::ConstPixelBufferAccess unclampedExpected = tcu::getEffectiveDepthStencilAccess(m_unclampedExpectedTextureLevel->getAccess(), mode);
+ const tcu::TextureFormat sourceFormat = tcu::getEffectiveDepthStencilTextureFormat(mapVkFormat(m_params.src.image.format), mode);
+
+ if (!checkLinearFilteredResult(depthResult, clampedExpected, unclampedExpected, sourceFormat))
+ return tcu::TestStatus::fail(failMessage);
+ }
+
+ if (tcu::hasStencilComponent(result.getFormat().order))
+ {
+ const tcu::Sampler::DepthStencilMode mode = tcu::Sampler::MODE_STENCIL;
+ const tcu::ConstPixelBufferAccess stencilResult = tcu::getEffectiveDepthStencilAccess(result, mode);
+ const tcu::ConstPixelBufferAccess clampedExpected = tcu::getEffectiveDepthStencilAccess(m_expectedTextureLevel->getAccess(), mode);
+ const tcu::ConstPixelBufferAccess unclampedExpected = tcu::getEffectiveDepthStencilAccess(m_unclampedExpectedTextureLevel->getAccess(), mode);
+ const tcu::TextureFormat sourceFormat = tcu::getEffectiveDepthStencilTextureFormat(mapVkFormat(m_params.src.image.format), mode);
+
+ if (!checkLinearFilteredResult(stencilResult, clampedExpected, unclampedExpected, sourceFormat))
+ return tcu::TestStatus::fail(failMessage);
}
}
-
- if (tcu::hasStencilComponent(result.getFormat().order))
+ else
{
- const tcu::Sampler::DepthStencilMode mode = tcu::Sampler::MODE_STENCIL;
- const tcu::ConstPixelBufferAccess stencilResult = tcu::getEffectiveDepthStencilAccess(result, mode);
- const tcu::ConstPixelBufferAccess clampedExpected = tcu::getEffectiveDepthStencilAccess(m_expectedTextureLevel->getAccess(), mode);
- const tcu::ConstPixelBufferAccess unclampedExpected = m_params.filter == VK_FILTER_LINEAR ? tcu::getEffectiveDepthStencilAccess(m_unclampedExpectedTextureLevel->getAccess(), mode) : tcu::ConstPixelBufferAccess();
+ const tcu::TextureFormat sourceFormat = mapVkFormat(m_params.src.image.format);
- if (!checkClampedAndUnclampedResult(stencilResult, clampedExpected, unclampedExpected, VK_IMAGE_ASPECT_STENCIL_BIT))
- {
- return tcu::TestStatus::fail("CopiesAndBlitting test");
- }
+ if (!checkLinearFilteredResult(result, m_expectedTextureLevel->getAccess(), m_unclampedExpectedTextureLevel->getAccess(), sourceFormat))
+ return tcu::TestStatus::fail(failMessage);
}
}
- else
+ else // NEAREST filtering
{
- if (!checkClampedAndUnclampedResult(result, m_expectedTextureLevel->getAccess(), m_params.filter == VK_FILTER_LINEAR ? m_unclampedExpectedTextureLevel->getAccess() : tcu::ConstPixelBufferAccess(), VK_IMAGE_ASPECT_COLOR_BIT))
+ if (tcu::isCombinedDepthStencilType(result.getFormat().type))
{
- return tcu::TestStatus::fail("CopiesAndBlitting test");
+ if (tcu::hasDepthComponent(result.getFormat().order))
+ {
+ const tcu::Sampler::DepthStencilMode mode = tcu::Sampler::MODE_DEPTH;
+ const tcu::ConstPixelBufferAccess depthResult = tcu::getEffectiveDepthStencilAccess(result, mode);
+ const tcu::ConstPixelBufferAccess depthSource = tcu::getEffectiveDepthStencilAccess(m_sourceTextureLevel->getAccess(), mode);
+
+ if (!checkNearestFilteredResult(depthResult, depthSource))
+ return tcu::TestStatus::fail(failMessage);
+ }
+
+ if (tcu::hasStencilComponent(result.getFormat().order))
+ {
+ const tcu::Sampler::DepthStencilMode mode = tcu::Sampler::MODE_STENCIL;
+ const tcu::ConstPixelBufferAccess stencilResult = tcu::getEffectiveDepthStencilAccess(result, mode);
+ const tcu::ConstPixelBufferAccess stencilSource = tcu::getEffectiveDepthStencilAccess(m_sourceTextureLevel->getAccess(), mode);
+
+ if (!checkNearestFilteredResult(stencilResult, stencilSource))
+ return tcu::TestStatus::fail(failMessage);
+ }
+ }
+ else
+ {
+ if (!checkNearestFilteredResult(result, m_sourceTextureLevel->getAccess()))
+ return tcu::TestStatus::fail(failMessage);
}
}
- return tcu::TestStatus::pass("CopiesAndBlitting test");
+ return tcu::TestStatus::pass("Pass");
}
tcu::Vec4 linearToSRGBIfNeeded (const tcu::TextureFormat& format, const tcu::Vec4& color)
@@ -4729,9 +4995,6 @@
}
{
- const std::string description ("Blit with scaling (partial)");
- const std::string testName ("scaling_partial");
-
// Test Color formats.
{
TestParams params;
@@ -4796,7 +5059,7 @@
params.dst.image.imageType = VK_IMAGE_TYPE_2D;
params.dst.image.format = params.src.image.format;
std::ostringstream oss;
- oss << testName << "_" << getFormatCaseName(params.src.image.format) << "_" << getFormatCaseName(params.dst.image.format);
+ oss << getFormatCaseName(params.src.image.format) << "_" << getFormatCaseName(params.dst.image.format);
const VkImageSubresourceLayers defaultDepthSourceLayer = { VK_IMAGE_ASPECT_DEPTH_BIT, 0u, 0u, 1u };
const VkImageSubresourceLayers defaultStencilSourceLayer = { VK_IMAGE_ASPECT_STENCIL_BIT, 0u, 0u, 1u };
@@ -4868,7 +5131,7 @@
}
params.filter = VK_FILTER_NEAREST;
- blitImgAllFormatsTests->addChild(new BlittingTestCase(testCtx, oss.str() + "_nearest", description, params));
+ blitImgAllFormatsTests->addChild(new BlittingTestCase(testCtx, oss.str() + "_nearest", "Blit image between compatible depth/stencil formats", params));
}
}
}
@@ -5409,6 +5672,77 @@
imageToImageTests->addChild(imgToImg3dImagesTests.release());
+ {
+ const std::string description ("Resolve from image to image of different size");
+ const std::string testName ("diff_image_size");
+
+ TestParams params;
+ params.src.image.imageType = VK_IMAGE_TYPE_2D;
+ params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+ params.dst.image.imageType = VK_IMAGE_TYPE_2D;
+ params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+
+ {
+ const VkImageSubresourceLayers sourceLayer =
+ {
+ VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspectMask;
+ 0u, // uint32_t mipLevel;
+ 0u, // uint32_t baseArrayLayer;
+ 1u // uint32_t layerCount;
+ };
+ const VkImageResolve testResolve =
+ {
+ sourceLayer, // VkImageSubresourceLayers srcSubresource;
+ {0, 0, 0}, // VkOffset3D srcOffset;
+ sourceLayer, // VkImageSubresourceLayers dstSubresource;
+ {0, 0, 0}, // VkOffset3D dstOffset;
+ resolveExtent, // VkExtent3D extent;
+ };
+
+ CopyRegion imageResolve;
+ imageResolve.imageResolve = testResolve;
+ params.regions.push_back(imageResolve);
+ }
+
+ const VkExtent3D imageExtents[] =
+ {
+ { resolveExtent.width + 10, resolveExtent.height, resolveExtent.depth },
+ { resolveExtent.width, resolveExtent.height * 2, resolveExtent.depth },
+ { resolveExtent.width, resolveExtent.height, resolveExtent.depth + 10 }
+ };
+
+ for (int srcImageExtentIndex = 0; srcImageExtentIndex < DE_LENGTH_OF_ARRAY(imageExtents); ++srcImageExtentIndex)
+ {
+ const VkExtent3D& srcImageSize = imageExtents[srcImageExtentIndex];
+
+ params.src.image.extent = srcImageSize;
+ params.dst.image.extent = resolveExtent;
+
+ for (int samplesIndex = 0; samplesIndex < DE_LENGTH_OF_ARRAY(samples); ++samplesIndex)
+ {
+ params.samples = samples[samplesIndex];
+ std::ostringstream caseName;
+ caseName << testName << "_src_" << srcImageSize.width << "_" << srcImageSize.height << "_" << srcImageSize.depth << "_" << getSampleCountCaseName(samples[samplesIndex]);
+ resolveImageTests->addChild(new ResolveImageToImageTestCase(testCtx, caseName.str(), description, params));
+ }
+ }
+
+ for (int dstImageExtentIndex = 0; dstImageExtentIndex < DE_LENGTH_OF_ARRAY(imageExtents); ++dstImageExtentIndex)
+ {
+ const VkExtent3D& dstImageSize = imageExtents[dstImageExtentIndex];
+ params.src.image.extent = resolveExtent;
+ params.dst.image.extent = dstImageSize;
+
+ for (int samplesIndex = 0; samplesIndex < DE_LENGTH_OF_ARRAY(samples); ++samplesIndex)
+ {
+ params.samples = samples[samplesIndex];
+ std::ostringstream caseName;
+ caseName << testName << "_dst_" << dstImageSize.width << "_" << dstImageSize.height << "_" << dstImageSize.depth << "_" << getSampleCountCaseName(samples[samplesIndex]);
+ resolveImageTests->addChild(new ResolveImageToImageTestCase(testCtx, caseName.str(), description, params));
+ }
+ }
+ }
+
copiesAndBlittingTests->addChild(imageToImageTests.release());
copiesAndBlittingTests->addChild(imageToBufferTests.release());
copiesAndBlittingTests->addChild(bufferToImageTests.release());
diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
index aeabde0..ae724ca 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
@@ -2108,12 +2108,28 @@
results.check(imageType != VK_IMAGE_TYPE_3D || (properties.maxExtent.width >= 1 && properties.maxExtent.height >= 1 && properties.maxExtent.depth >= 1), "Invalid dimensions for 3D image");
results.check(imageType != VK_IMAGE_TYPE_3D || properties.maxArrayLayers == 1, "Invalid maxArrayLayers for 3D image");
- if (tiling == VK_IMAGE_TILING_OPTIMAL && imageType == VK_IMAGE_TYPE_2D && !(curCreateFlags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT) &&
- ((supportedFeatures & (VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT)) ||
- ((supportedFeatures & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) && deviceFeatures.shaderStorageImageMultisample)))
+ if (tiling == VK_IMAGE_TILING_OPTIMAL)
{
- const VkSampleCountFlags requiredSampleCounts = getRequiredOptimalTilingSampleCounts(deviceLimits, format, curUsageFlags);
- results.check((properties.sampleCounts & requiredSampleCounts) == requiredSampleCounts, "Required sample counts not supported");
+ // Vulkan API specification has changed since initial Android Nougat release.
+ // For NYC CTS we need to tolerate old behavior as well and issue compatibility
+ // warning instead.
+ //
+ // See spec issues 272, 282, 302, 445 and CTS issues 369, 440.
+ const bool requiredByNewSpec = (imageType == VK_IMAGE_TYPE_2D && !(curCreateFlags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT) &&
+ ((supportedFeatures & (VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT)) ||
+ ((supportedFeatures & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) && deviceFeatures.shaderStorageImageMultisample)));
+
+ if (requiredByNewSpec)
+ {
+ const VkSampleCountFlags requiredSampleCounts = getRequiredOptimalTilingSampleCounts(deviceLimits, format, curUsageFlags);
+
+ results.check((properties.sampleCounts & requiredSampleCounts) == requiredSampleCounts, "Required sample counts not supported");
+ }
+ else if (properties.sampleCounts != VK_SAMPLE_COUNT_1_BIT)
+ {
+ results.addResult(QP_TEST_RESULT_COMPATIBILITY_WARNING,
+ "Implementation supports more sample counts than allowed by the spec");
+ }
}
else
results.check(properties.sampleCounts == VK_SAMPLE_COUNT_1_BIT, "sampleCounts != VK_SAMPLE_COUNT_1_BIT");
diff --git a/external/vulkancts/modules/vulkan/api/vktApiGetMemoryCommitment.cpp b/external/vulkancts/modules/vulkan/api/vktApiGetMemoryCommitment.cpp
new file mode 100644
index 0000000..44d1a17
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/api/vktApiGetMemoryCommitment.cpp
@@ -0,0 +1,788 @@
+/*-------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * 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 Memory Commitment tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktApiGetMemoryCommitment.hpp"
+
+#include "vkDeviceUtil.cpp"
+#include "vkImageUtil.hpp"
+#include "vkMemUtil.hpp"
+#include "vkPrograms.hpp"
+#include "vktTestCase.hpp"
+#include "vkTypeUtil.cpp"
+
+using namespace vk;
+using tcu::TestLog;
+
+namespace vkt
+{
+namespace api
+{
+
+struct MemoryCommitmentCaseParams
+{
+ deUint32 bufferSize;
+ deUint32 bufferViewSize;
+ deUint32 elementOffset;
+};
+
+class MemoryCommitmentTestInstance : public vkt::TestInstance
+{
+public:
+ MemoryCommitmentTestInstance (Context& context, MemoryCommitmentCaseParams testCase);
+ tcu::TestStatus iterate (void);
+ deUint32 getMemoryTypeIndex (VkMemoryPropertyFlags propertyFlag, VkPhysicalDeviceMemoryProperties pMemoryProperties);
+ Move<VkCommandPool> createCommandPool () const;
+ Move<VkCommandBuffer> allocatePrimaryCommandBuffer (VkCommandPool commandPool) const;
+ void submitCommandsAndWait (const DeviceInterface& vkd,
+ const VkDevice device,
+ const VkQueue queue,
+ const VkCommandBuffer& cmdBuffer);
+ bool isDeviceMemoryCommitmentOk (const VkMemoryRequirements memoryRequirements);
+
+private:
+ const tcu::IVec2 m_renderSize;
+};
+
+MemoryCommitmentTestInstance::MemoryCommitmentTestInstance(Context& context, MemoryCommitmentCaseParams testCase)
+ : vkt::TestInstance (context)
+ , m_renderSize (testCase.bufferViewSize, testCase.bufferViewSize)
+{
+}
+
+class MemoryCommitmentTestCase : public vkt::TestCase
+{
+public:
+ MemoryCommitmentTestCase (tcu::TestContext& testCtx,
+ const std::string& name,
+ const std::string& description,
+ MemoryCommitmentCaseParams memoryCommitmentTestInfo)
+ : vkt::TestCase (testCtx, name, description)
+ , m_memoryCommitmentTestInfo (memoryCommitmentTestInfo)
+ {}
+ virtual ~MemoryCommitmentTestCase(void){}
+ virtual void initPrograms (SourceCollections& programCollection) const;
+ virtual TestInstance* createInstance (Context& context) const
+ {
+ return new MemoryCommitmentTestInstance(context, m_memoryCommitmentTestInfo);
+ }
+private:
+ MemoryCommitmentCaseParams m_memoryCommitmentTestInfo;
+};
+
+tcu::TestStatus MemoryCommitmentTestInstance::iterate(void)
+{
+ const VkMemoryPropertyFlags propertyFlag = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT;
+ const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice();
+ const InstanceInterface& vki = m_context.getInstanceInterface();
+ const VkPhysicalDeviceMemoryProperties pMemoryProperties = getPhysicalDeviceMemoryProperties(vki,physicalDevice);
+ const deUint32 memoryTypeIndex = getMemoryTypeIndex(propertyFlag, pMemoryProperties);
+ Allocator& memAlloc = m_context.getDefaultAllocator();
+ bool isMemoryAllocationOK = false;
+ const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
+ const VkComponentMapping componentMappingRGBA = { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
+ const DeviceInterface& vkd = m_context.getDeviceInterface();
+ const Move<VkCommandPool> cmdPool = createCommandPool();
+ const Move<VkCommandBuffer> cmdBuffer = allocatePrimaryCommandBuffer(*cmdPool);
+ const VkDevice device = m_context.getDevice();
+ Move<VkImageView> colorAttachmentView;
+ Move<VkRenderPass> renderPass;
+ Move<VkFramebuffer> framebuffer;
+ Move<VkDescriptorSetLayout> descriptorSetLayout;
+ Move<VkPipelineLayout> pipelineLayout;
+ Move<VkShaderModule> vertexShaderModule;
+ Move<VkShaderModule> fragmentShaderModule;
+ Move<VkPipeline> graphicsPipelines;
+
+ if(memoryTypeIndex == -1u)
+ TCU_THROW(NotSupportedError, "Lazily allocated bit is not supported");
+
+ const VkImageCreateInfo imageParams =
+ {
+ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ 0u, // VkImageCreateFlags flags;
+ VK_IMAGE_TYPE_2D, // VkImageType imageType;
+ VK_FORMAT_R32_UINT, // VkFormat format;
+ {256u, 256u, 1}, // VkExtent3D extent;
+ 1u, // deUint32 mipLevels;
+ 1u, // deUint32 arraySize;
+ VK_SAMPLE_COUNT_1_BIT, // deUint32 samples;
+ VK_IMAGE_TILING_OPTIMAL, // VkImageTiling tiling;
+ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
+ VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, // VkImageUsageFlags usage;
+ VK_SHARING_MODE_EXCLUSIVE, // VkSharingMode sharingMode;
+ 1u, // deUint32 queueFamilyCount;
+ &queueFamilyIndex, // const deUint32* pQueueFamilyIndices;
+ VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout;
+ };
+
+ Move<VkImage> image = createImage(vkd, device, &imageParams);
+ const VkMemoryRequirements memoryRequirements = getImageMemoryRequirements(vkd, device, *image);
+ de::MovePtr<Allocation> imageAlloc = memAlloc.allocate(memoryRequirements, MemoryRequirement::LazilyAllocated);
+
+ VK_CHECK(vkd.bindImageMemory(device, *image, imageAlloc->getMemory(), imageAlloc->getOffset()));
+
+ const VkImageViewCreateInfo colorAttachmentViewParams =
+ {
+ VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ 0u, // VkImageViewCreateFlags flags;
+ *image, // VkImage image;
+ VK_IMAGE_VIEW_TYPE_2D, // VkImageViewType viewType;
+ VK_FORMAT_R32_UINT, // VkFormat format;
+ componentMappingRGBA, // VkComponentMapping components;
+ { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u } // VkImageSubresourceRange subresourceRange;
+ };
+
+ colorAttachmentView = createImageView(vkd, device, &colorAttachmentViewParams);
+
+ // Create render pass
+ {
+ const VkAttachmentDescription colorAttachmentDescription =
+ {
+ 0u, // VkAttachmentDescriptionFlags flags;
+ VK_FORMAT_R32_UINT, // VkFormat format;
+ VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples;
+ VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp;
+ VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp;
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp;
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout initialLayout;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout;
+ };
+
+ const VkAttachmentReference colorAttachmentReference =
+ {
+ 0u, // deUint32 attachment;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout layout;
+ };
+
+ const VkSubpassDescription subpassDescription =
+ {
+ 0u, // VkSubpassDescriptionFlags flags;
+ VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint;
+ 0u, // deUint32 inputAttachmentCount;
+ DE_NULL, // const VkAttachmentReference* pInputAttachments;
+ 1u, // deUint32 colorAttachmentCount;
+ &colorAttachmentReference, // const VkAttachmentReference* pColorAttachments;
+ DE_NULL, // const VkAttachmentReference* pResolveAttachments;
+ DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment;
+ 0u, // deUint32 preserveAttachmentCount;
+ DE_NULL // const VkAttachmentReference* pPreserveAttachments;
+ };
+
+ const VkRenderPassCreateInfo renderPassParams =
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ 0u, // VkRenderPassCreateFlags flags;
+ 1u, // deUint32 attachmentCount;
+ &colorAttachmentDescription, // const VkAttachmentDescription* pAttachments;
+ 1u, // deUint32 subpassCount;
+ &subpassDescription, // const VkSubpassDescription* pSubpasses;
+ 0u, // deUint32 dependencyCount;
+ DE_NULL // const VkSubpassDependency* pDependencies;
+ };
+
+ renderPass = createRenderPass(vkd, device, &renderPassParams);
+ }
+
+ // Create framebuffer
+ {
+ const VkImageView attachmentBindInfos[1] =
+ {
+ *colorAttachmentView,
+ };
+
+ const VkFramebufferCreateInfo framebufferParams =
+ {
+ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkFramebufferCreateFlags)0,
+ *renderPass, // VkRenderPass renderPass;
+ 1u, // deUint32 attachmentCount;
+ attachmentBindInfos, // const VkImageView* pAttachments;
+ (deUint32)m_renderSize.x(), // deUint32 width;
+ (deUint32)m_renderSize.y(), // deUint32 height;
+ 1u // deUint32 layers;
+ };
+
+ framebuffer = createFramebuffer(vkd, device, &framebufferParams);
+ }
+
+ // Create descriptors
+ {
+ const VkDescriptorSetLayoutBinding layoutBindings[1] =
+ {
+ {
+ 0u, // deUint32 binding;
+ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, // VkDescriptorType descriptorType;
+ 1u, // deUint32 arraySize;
+ VK_SHADER_STAGE_ALL, // VkShaderStageFlags stageFlags;
+ DE_NULL // const VkSampler* pImmutableSamplers;
+ },
+ };
+
+ const VkDescriptorSetLayoutCreateInfo descriptorLayoutParams =
+ {
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // cost void* pNexŧ;
+ (VkDescriptorSetLayoutCreateFlags)0,
+ DE_LENGTH_OF_ARRAY(layoutBindings), // deUint32 count;
+ layoutBindings // const VkDescriptorSetLayoutBinding pBinding;
+ };
+
+ descriptorSetLayout = createDescriptorSetLayout(vkd, device, &descriptorLayoutParams);
+ }
+
+ // Create pipeline layout
+ {
+ const VkPipelineLayoutCreateInfo pipelineLayoutParams =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineLayoutCreateFlags)0,
+ 1u, // deUint32 descriptorSetCount;
+ &*descriptorSetLayout, // const VkDescriptorSetLayout* pSetLayouts;
+ 0u, // deUint32 pushConstantRangeCount;
+ DE_NULL // const VkPushConstantRange* pPushConstantRanges;
+ };
+
+ pipelineLayout = createPipelineLayout(vkd, device, &pipelineLayoutParams);
+ }
+
+ // Create shaders
+ {
+ vertexShaderModule = createShaderModule(vkd, device, m_context.getBinaryCollection().get("vert"), 0);
+ fragmentShaderModule = createShaderModule(vkd, device, m_context.getBinaryCollection().get("frag"), 0);
+ }
+
+ // Create pipeline
+ {
+ const VkPipelineShaderStageCreateInfo shaderStageParams[2] =
+ {
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineShaderStageCreateFlags)0,
+ VK_SHADER_STAGE_VERTEX_BIT, // VkShaderStage stage;
+ *vertexShaderModule, // VkShader shader;
+ "main",
+ DE_NULL // const VkSpecializationInfo* pSpecializationInfo;
+ },
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineShaderStageCreateFlags)0,
+ VK_SHADER_STAGE_FRAGMENT_BIT, // VkShaderStage stage;
+ *fragmentShaderModule, // VkShader shader;
+ "main",
+ DE_NULL // const VkSpecializationInfo* pSpecializationInfo;
+ }
+ };
+
+ const VkVertexInputBindingDescription vertexInputBindingDescription =
+ {
+ 0u, // deUint32 binding;
+ sizeof(tcu::Vec4), // deUint32 strideInBytes;
+ VK_VERTEX_INPUT_RATE_VERTEX // VkVertexInputStepRate stepRate;
+ };
+
+ const VkVertexInputAttributeDescription vertexInputAttributeDescriptions[1] =
+ {
+ {
+ 0u, // deUint32 location;
+ 0u, // deUint32 binding;
+ VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format;
+ 0u // deUint32 offsetInBytes;
+ }
+ };
+
+ const VkPipelineVertexInputStateCreateInfo vertexInputStateParams =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineVertexInputStateCreateFlags)0,
+ 1u, // deUint32 bindingCount;
+ &vertexInputBindingDescription, // const VkVertexInputBindingDescription* pVertexBindingDescriptions;
+ 1u, // deUint32 attributeCount;
+ vertexInputAttributeDescriptions // const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
+ };
+
+ const VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateParams =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineInputAssemblyStateCreateFlags)0,
+ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, // VkPrimitiveTopology topology;
+ false // VkBool32 primitiveRestartEnable;
+ };
+
+ const VkViewport viewport =
+ {
+ 0.0f, // float originX;
+ 0.0f, // float originY;
+ (float)m_renderSize.x(), // float width;
+ (float)m_renderSize.y(), // float height;
+ 0.0f, // float minDepth;
+ 1.0f // float maxDepth;
+ };
+
+ const VkRect2D scissor =
+ {
+ { 0, 0 }, // VkOffset2D offset;
+ { (deUint32)m_renderSize.x(), (deUint32)m_renderSize.y() } // VkExtent2D extent;
+ };
+
+ const VkPipelineViewportStateCreateInfo viewportStateParams =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineViewportStateCreateFlags)0,
+ 1u, // deUint32 viewportCount;
+ &viewport, // const VkViewport* pViewports;
+ 1u, // deUint32 scissorCount;
+ &scissor // const VkRect2D* pScissors;
+ };
+
+ const VkPipelineRasterizationStateCreateInfo rasterStateParams =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineRasterizationStateCreateFlags)0,
+ false, // VkBool32 depthClipEnable;
+ false, // VkBool32 rasterizerDiscardEnable;
+ VK_POLYGON_MODE_FILL, // VkFillMode fillMode;
+ VK_CULL_MODE_NONE, // VkCullMode cullMode;
+ VK_FRONT_FACE_COUNTER_CLOCKWISE, // VkFrontFace frontFace;
+ VK_FALSE, // VkBool32 depthBiasEnable;
+ 0.0f, // float depthBias;
+ 0.0f, // float depthBiasClamp;
+ 0.0f, // float slopeScaledDepthBias;
+ 1.0f, // float lineWidth;
+ };
+
+ const VkPipelineMultisampleStateCreateInfo multisampleStateParams =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ 0u, // VkPipelineMultisampleStateCreateFlags flags;
+ VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits rasterizationSamples;
+ VK_FALSE, // VkBool32 sampleShadingEnable;
+ 0.0f, // float minSampleShading;
+ DE_NULL, // const VkSampleMask* pSampleMask;
+ VK_FALSE, // VkBool32 alphaToCoverageEnable;
+ VK_FALSE // VkBool32 alphaToOneEnable;
+ };
+
+ const VkPipelineColorBlendAttachmentState colorBlendAttachmentState =
+ {
+ false, // VkBool32 blendEnable;
+ VK_BLEND_FACTOR_ONE, // VkBlend srcBlendColor;
+ VK_BLEND_FACTOR_ZERO, // VkBlend destBlendColor;
+ VK_BLEND_OP_ADD, // VkBlendOp blendOpColor;
+ VK_BLEND_FACTOR_ONE, // VkBlend srcBlendAlpha;
+ VK_BLEND_FACTOR_ZERO, // VkBlend destBlendAlpha;
+ VK_BLEND_OP_ADD, // VkBlendOp blendOpAlpha;
+ (VK_COLOR_COMPONENT_R_BIT |
+ VK_COLOR_COMPONENT_G_BIT |
+ VK_COLOR_COMPONENT_B_BIT |
+ VK_COLOR_COMPONENT_A_BIT) // VkChannelFlags channelWriteMask;
+ };
+
+ const VkPipelineColorBlendStateCreateInfo colorBlendStateParams =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineColorBlendStateCreateFlags)0,
+ false, // VkBool32 logicOpEnable;
+ VK_LOGIC_OP_COPY, // VkLogicOp logicOp;
+ 1u, // deUint32 attachmentCount;
+ &colorBlendAttachmentState, // const VkPipelineColorBlendAttachmentState* pAttachments;
+ { 0.0f, 0.0f, 0.0f, 0.0f }, // float blendConst[4];
+ };
+
+ const VkGraphicsPipelineCreateInfo graphicsPipelineParams =
+ {
+ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ 0u, // VkPipelineCreateFlags flags;
+ 2u, // deUint32 stageCount;
+ shaderStageParams, // const VkPipelineShaderStageCreateInfo* pStages;
+ &vertexInputStateParams, // const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
+ &inputAssemblyStateParams, // const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
+ DE_NULL, // const VkPipelineTessellationStateCreateInfo* pTessellationState;
+ &viewportStateParams, // const VkPipelineViewportStateCreateInfo* pViewportState;
+ &rasterStateParams, // const VkPipelineRasterStateCreateInfo* pRasterState;
+ &multisampleStateParams, // const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
+ DE_NULL, // const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
+ &colorBlendStateParams, // const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
+ DE_NULL, // const VkPipelineDynamicStateCreateInfo* pDynamicState;
+ *pipelineLayout, // VkPipelineLayout layout;
+ *renderPass, // VkRenderPass renderPass;
+ 0u, // deUint32 subpass;
+ 0u, // VkPipeline basePipelineHandle;
+ 0u // deInt32 basePipelineIndex;
+ };
+
+ graphicsPipelines = createGraphicsPipeline(vkd, device, DE_NULL, &graphicsPipelineParams);
+ }
+
+ // getMemoryCommitment
+ isMemoryAllocationOK = isDeviceMemoryCommitmentOk(memoryRequirements);
+
+ const deUint32 clearColor[4] = { 1u, 1u, 1u, 1u };
+ const VkClearAttachment clearAttachment =
+ {
+ VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspectMask;
+ 0u, // deUint32 colorAttachment;
+ makeClearValueColorU32(clearColor[0],
+ clearColor[1],
+ clearColor[2],
+ clearColor[3]) // VkClearValue clearValue;
+ };
+
+ const VkOffset2D offset =
+ {
+ 0,
+ 0
+ };
+
+ const VkExtent2D extent =
+ {
+ 256u,
+ 256u
+ };
+
+ const VkRect2D rect =
+ {
+ offset,
+ extent
+ };
+
+ const VkClearRect clearRect =
+ {
+ rect,
+ 1u, // baseArrayLayer
+ 1u // layerCount
+ };
+
+ const VkCommandBufferBeginInfo commandBufferBeginInfo =
+ {
+ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, // VkCommandBufferUsageFlags flags;
+ (const VkCommandBufferInheritanceInfo*)DE_NULL,
+ };
+
+ // beginCommandBuffer
+ VK_CHECK(vkd.beginCommandBuffer(*cmdBuffer, &commandBufferBeginInfo));
+
+ const VkExtent3D extent3D =
+ {
+ 256u, // width
+ 256u, // height
+ 1u // depth
+ };
+
+ const VkClearValue clearValues[1] =
+ {
+ makeClearValueColorF32(0.0f, 0.0f, 1.0f, 1.0f),
+ };
+
+ const VkRenderPassBeginInfo renderPassBeginInfo =
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ *renderPass, // VkRenderPass renderPass;
+ *framebuffer, // VkFramebuffer framebuffer;
+ {
+ { 0, 0 },
+ { extent3D.width, extent3D.height }
+ }, // VkRect2D renderArea;
+ 1u, // deUint32 clearValueCount;
+ clearValues // const VkClearValue* pClearValues;
+ };
+
+ const VkImageMemoryBarrier initialImageBarrier =
+ {
+ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ 0, // VkMemoryOutputFlags outputMask;
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkMemoryInputFlags inputMask;
+ VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout oldLayout;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout newLayout;
+ VK_QUEUE_FAMILY_IGNORED, // deUint32 srcQueueFamilyIndex;
+ VK_QUEUE_FAMILY_IGNORED, // deUint32 destQueueFamilyIndex;
+ image.get(), // VkImage image;
+ { // VkImageSubresourceRange subresourceRange;
+ VK_IMAGE_ASPECT_COLOR_BIT, // VkImageAspectFlags aspectMask;
+ 0u, // deUint32 baseMipLevel;
+ 1u, // deUint32 mipLevels;
+ 0u, // deUint32 baseArraySlice;
+ 1u // deUint32 arraySize;
+ }
+ };
+
+ vkd.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &initialImageBarrier);
+ vkd.cmdBeginRenderPass(*cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+ vkd.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *graphicsPipelines);
+ // clearAttachments
+ vkd.cmdClearAttachments(*cmdBuffer, 1, &clearAttachment, 1u, &clearRect);
+ vkd.cmdEndRenderPass(*cmdBuffer);
+ vkd.endCommandBuffer(*cmdBuffer);
+
+ // queueSubmit
+ const VkQueue queue = m_context.getUniversalQueue();
+ submitCommandsAndWait(vkd, device, queue, *cmdBuffer);
+
+ // getMemoryCommitment
+ isMemoryAllocationOK = (isMemoryAllocationOK && isDeviceMemoryCommitmentOk(memoryRequirements)) ? true : false;
+
+ if (isMemoryAllocationOK)
+ return tcu::TestStatus::pass("Pass");
+
+ return tcu::TestStatus::fail("Fail");
+}
+
+class MemoryCommitmentAllocateOnlyTestInstance : public vkt::TestInstance
+{
+public:
+ MemoryCommitmentAllocateOnlyTestInstance (Context& context);
+ tcu::TestStatus iterate (void);
+};
+
+class MemoryCommitmentAllocateOnlyTestCase : public vkt::TestCase
+{
+public:
+ MemoryCommitmentAllocateOnlyTestCase (tcu::TestContext& testCtx,
+ const std::string& name,
+ const std::string& description)
+ : vkt::TestCase (testCtx, name, description)
+ {}
+ virtual ~MemoryCommitmentAllocateOnlyTestCase(void){}
+ virtual TestInstance* createInstance (Context& context) const
+ {
+ return new MemoryCommitmentAllocateOnlyTestInstance(context);
+ }
+};
+
+MemoryCommitmentAllocateOnlyTestInstance::MemoryCommitmentAllocateOnlyTestInstance(Context& context)
+ : vkt::TestInstance (context)
+{
+}
+
+tcu::TestStatus MemoryCommitmentAllocateOnlyTestInstance::iterate(void)
+{
+ const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice();
+ const VkDevice device = m_context.getDevice();
+ const InstanceInterface& vki = m_context.getInstanceInterface();
+ const DeviceInterface& vkd = m_context.getDeviceInterface();
+ const VkPhysicalDeviceMemoryProperties pMemoryProperties = getPhysicalDeviceMemoryProperties(vki,physicalDevice);
+ const VkMemoryPropertyFlags propertyFlag = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT;
+ const int arrayLength = 10;
+ VkDeviceSize pCommittedMemoryInBytes = 0u;
+ VkDeviceSize allocSize[arrayLength];
+
+ // generating random allocation sizes
+ for (int i = 0; i < arrayLength; ++i)
+ {
+ allocSize[i] = rand() % 1000 + 1;
+ }
+
+ for (deUint32 memoryTypeIndex = 0u; memoryTypeIndex < VK_MAX_MEMORY_TYPES; ++memoryTypeIndex) //for memoryTypes
+ {
+ if((pMemoryProperties.memoryTypes[memoryTypeIndex].propertyFlags & propertyFlag) == propertyFlag) //if supports Lazy allocation
+ {
+ for (int i = 0; i < arrayLength; ++i)
+ {
+ const VkMemoryAllocateInfo memAllocInfo =
+ {
+ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, // VkStructureType sType
+ NULL, // const void* pNext
+ allocSize[i], // VkDeviceSize allocationSize
+ memoryTypeIndex // deUint32 memoryTypeIndex
+ };
+
+ Move<VkDeviceMemory> memory = allocateMemory(vkd, device, &memAllocInfo, (const VkAllocationCallbacks*)DE_NULL);
+
+ vkd.getDeviceMemoryCommitment(device, memory.get(), &pCommittedMemoryInBytes);
+ if(pCommittedMemoryInBytes != 0)
+ {
+ tcu::TestLog& log = m_context.getTestContext().getLog();
+ log << TestLog::Message << "Warning: Memory commitment not null before binding." << TestLog::EndMessage;
+ }
+ if(pCommittedMemoryInBytes > allocSize[i])
+ return tcu::TestStatus::fail("Fail");
+
+ }
+ }
+ }
+ return tcu::TestStatus::pass("Pass");
+}
+
+void MemoryCommitmentTestInstance::submitCommandsAndWait (const DeviceInterface& vkd, const VkDevice device, const VkQueue queue, const VkCommandBuffer& cmdBuffer)
+{
+ const VkFenceCreateInfo fenceParams =
+ {
+ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ 0u // VkFenceCreateFlags flags;
+ };
+
+ Move<VkFence> fence = createFence(vkd, device, &fenceParams);
+
+ const VkSubmitInfo submitInfo =
+ {
+ VK_STRUCTURE_TYPE_SUBMIT_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ 0u, // deUint32 waitSemaphoreCount;
+ DE_NULL, // const VkSemaphore* pWaitSemaphores;
+ (const VkPipelineStageFlags*)DE_NULL,
+ 1u, // deUint32 commandBufferCount;
+ &cmdBuffer, // const VkCommandBuffer* pCommandBuffers;
+ 0u, // deUint32 signalSemaphoreCount;
+ DE_NULL // const VkSemaphore* pSignalSemaphores;
+ };
+
+ VK_CHECK(vkd.queueSubmit(queue, 1, &submitInfo, *fence));
+ VK_CHECK(vkd.waitForFences(device, 1, &fence.get(), true, ~(0ull) /* infinity */));
+}
+
+deUint32 MemoryCommitmentTestInstance::getMemoryTypeIndex(VkMemoryPropertyFlags propertyFlag, VkPhysicalDeviceMemoryProperties pMemoryProperties)
+{
+ for (deUint32 memoryTypeIndex = 0u; memoryTypeIndex < VK_MAX_MEMORY_TYPES; ++memoryTypeIndex)
+ {
+ if((pMemoryProperties.memoryTypes[memoryTypeIndex].propertyFlags & propertyFlag) == propertyFlag)
+ return memoryTypeIndex;
+ }
+ return -1u;
+}
+
+void MemoryCommitmentTestCase::initPrograms (SourceCollections& programCollection) const
+{
+ programCollection.glslSources.add("vert") << glu::VertexSource(
+ "#version 310 es\n"
+ "layout (location = 0) in highp vec4 a_position;\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = a_position;\n"
+ "}\n");
+
+ programCollection.glslSources.add("frag") << glu::FragmentSource(
+ "#version 310 es\n"
+ "#extension GL_EXT_texture_buffer : enable\n"
+ "layout (set=0, binding=0) uniform highp usamplerBuffer u_buffer;\n"
+ "layout (location = 0) out highp uint o_color;\n"
+ "void main()\n"
+ "{\n"
+ " o_color = texelFetch(u_buffer, int(gl_FragCoord.x)).x;\n"
+ "}\n");
+}
+
+Move<VkCommandPool> MemoryCommitmentTestInstance::createCommandPool() const
+{
+ const VkDevice device = m_context.getDevice();
+ const DeviceInterface& vkd = m_context.getDeviceInterface();
+ const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
+ const VkCommandPoolCreateInfo cmdPoolCreateInfo =
+ {
+ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, // VkCommandPoolCreateFlags flags;
+ queueFamilyIndex // deUint32 queueFamilyIndex;
+ };
+
+ return vk::createCommandPool(vkd, device, &cmdPoolCreateInfo, DE_NULL);
+}
+
+Move<VkCommandBuffer> MemoryCommitmentTestInstance::allocatePrimaryCommandBuffer (VkCommandPool commandPool) const
+{
+ const VkDevice device = m_context.getDevice();
+ const DeviceInterface& vkd = m_context.getDeviceInterface();
+ const VkCommandBufferAllocateInfo cmdBufferAllocateInfo =
+ {
+ VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ commandPool, // VkCommandPool commandPool;
+ VK_COMMAND_BUFFER_LEVEL_PRIMARY, // VkCommandBufferLevel level;
+ 1 // deUint32 commandBufferCount;
+ };
+
+ return vk::allocateCommandBuffer(vkd, device, &cmdBufferAllocateInfo);
+}
+
+bool MemoryCommitmentTestInstance::isDeviceMemoryCommitmentOk(const VkMemoryRequirements memoryRequirements)
+{
+ const VkFormat colorFormat = VK_FORMAT_R32_UINT;
+ const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice();
+ const InstanceInterface& vki = m_context.getInstanceInterface();
+ const VkMemoryPropertyFlags propertyFlag = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT;
+ const VkPhysicalDeviceMemoryProperties pMemoryProperties = getPhysicalDeviceMemoryProperties(vki,physicalDevice);
+ const VkDeviceSize pixelDataSize = m_renderSize.x() * m_renderSize.y() * mapVkFormat(colorFormat).getPixelSize();
+
+ for (deUint32 memTypeNdx = 0u; memTypeNdx < VK_MAX_MEMORY_TYPES; ++memTypeNdx)
+ {
+ if((pMemoryProperties.memoryTypes[memTypeNdx].propertyFlags & propertyFlag) == propertyFlag) //if supports Lazy allocation
+ {
+ const VkMemoryAllocateInfo memAllocInfo =
+ {
+ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, // VkStructureType sType
+ NULL, // const void* pNext
+ pixelDataSize, // VkDeviceSize allocationSize
+ memTypeNdx // deUint32 memoryTypeIndex
+ };
+ const VkDevice device = m_context.getDevice();
+ const DeviceInterface& vkd = m_context.getDeviceInterface();
+ Move<VkDeviceMemory> memory = allocateMemory(vkd, device, &memAllocInfo, (const VkAllocationCallbacks*)DE_NULL);
+ VkDeviceSize pCommittedMemoryInBytes = 0u;
+ vkd.getDeviceMemoryCommitment(device, memory.get(), &pCommittedMemoryInBytes);
+ if(pCommittedMemoryInBytes <= memoryRequirements.size)
+ return true;
+ }
+ }
+ return false;
+}
+
+tcu::TestCaseGroup* createMemoryCommitmentTests (tcu::TestContext& testCtx)
+{
+ static const MemoryCommitmentCaseParams info =
+ {
+ 2048u, // deUint32 bufferSize
+ 256u, // deUint32 bufferViewSize
+ 0u, // deUint32 elementOffset
+ };
+
+ de::MovePtr<tcu::TestCaseGroup> getMemoryCommitmentTests (new tcu::TestCaseGroup(testCtx, "get_memory_commitment", "Memory Commitment Tests"));
+
+ {
+ getMemoryCommitmentTests->addChild(new MemoryCommitmentTestCase(testCtx, "memory_commitment", "memory_commitment_test", info));
+ getMemoryCommitmentTests->addChild(new MemoryCommitmentAllocateOnlyTestCase(testCtx, "memory_commitment_allocate_only", "memory_commitment_allocate_only_test"));
+ }
+
+ return getMemoryCommitmentTests.release();
+}
+
+} //api
+} //vkt
diff --git a/external/vulkancts/modules/vulkan/api/vktApiGetMemoryCommitment.hpp b/external/vulkancts/modules/vulkan/api/vktApiGetMemoryCommitment.hpp
new file mode 100644
index 0000000..5c2d69a
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/api/vktApiGetMemoryCommitment.hpp
@@ -0,0 +1,41 @@
+#ifndef _VKTAPIGETMEMORYCOMMITMENT_HPP
+#define _VKTAPIGETMEMORYCOMMITMENT_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * 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 Vulkan Memory Commitment Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+
+namespace api
+{
+
+tcu::TestCaseGroup* createMemoryCommitmentTests (tcu::TestContext& testCtx);
+
+} // api
+} // vkt
+
+#endif // _VKTAPIGETMEMORYCOMMITMENT_HPP
diff --git a/external/vulkancts/modules/vulkan/api/vktApiTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiTests.cpp
index d1df659..dd9e47e 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiTests.cpp
@@ -38,6 +38,7 @@
#include "vktApiDescriptorPoolTests.hpp"
#include "vktApiNullHandleTests.hpp"
#include "vktApiGranularityTests.hpp"
+#include "vktApiGetMemoryCommitment.hpp"
namespace vkt
{
@@ -72,6 +73,7 @@
apiTests->addChild(createDescriptorPoolTests (testCtx));
apiTests->addChild(createNullHandleTests (testCtx));
apiTests->addChild(createGranularityQueryTests (testCtx));
+ apiTests->addChild(createMemoryCommitmentTests (testCtx));
}
} // anonymous
diff --git a/external/vulkancts/modules/vulkan/pipeline/CMakeLists.txt b/external/vulkancts/modules/vulkan/pipeline/CMakeLists.txt
index d3c7850..6b36ec2 100644
--- a/external/vulkancts/modules/vulkan/pipeline/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/pipeline/CMakeLists.txt
@@ -29,8 +29,16 @@
vktPipelineMultisampleTestsUtil.hpp
vktPipelineMultisampleTests.cpp
vktPipelineMultisampleTests.hpp
+ vktPipelineMultisampleBase.cpp
+ vktPipelineMultisampleBase.hpp
+ vktPipelineMultisampleBaseResolve.cpp
+ vktPipelineMultisampleBaseResolve.hpp
+ vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp
+ vktPipelineMultisampleBaseResolveAndPerSampleFetch.hpp
vktPipelineMultisampleInterpolationTests.cpp
vktPipelineMultisampleInterpolationTests.hpp
+ vktPipelineMultisampleShaderBuiltInTests.cpp
+ vktPipelineMultisampleShaderBuiltInTests.hpp
vktPipelineMultisampleImageTests.cpp
vktPipelineMultisampleImageTests.hpp
vktPipelineInputAssemblyTests.cpp
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.cpp
new file mode 100644
index 0000000..07c3729
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.cpp
@@ -0,0 +1,166 @@
+/*------------------------------------------------------------------------
+* Vulkan Conformance Tests
+* ------------------------
+*
+* Copyright (c) 2016 The Khronos Group Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*//*
+* \file vktPipelineMultisampleBase.cpp
+* \brief Multisample Tests Base Classes
+*//*--------------------------------------------------------------------*/
+
+#include "vktPipelineMultisampleBase.hpp"
+#include "vkQueryUtil.hpp"
+
+namespace vkt
+{
+namespace pipeline
+{
+namespace multisample
+{
+
+using namespace vk;
+
+void MultisampleInstanceBase::validateImageSize (const InstanceInterface& instance,
+ const VkPhysicalDevice physicalDevice,
+ const ImageType imageType,
+ const tcu::UVec3& imageSize) const
+{
+ const VkPhysicalDeviceProperties deviceProperties = getPhysicalDeviceProperties(instance, physicalDevice);
+
+ bool isImageSizeValid = true;
+
+ switch (imageType)
+ {
+ case IMAGE_TYPE_1D:
+ isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension1D;
+ break;
+ case IMAGE_TYPE_1D_ARRAY:
+ isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension1D &&
+ imageSize.z() <= deviceProperties.limits.maxImageArrayLayers;
+ break;
+ case IMAGE_TYPE_2D:
+ isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension2D &&
+ imageSize.y() <= deviceProperties.limits.maxImageDimension2D;
+ break;
+ case IMAGE_TYPE_2D_ARRAY:
+ isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension2D &&
+ imageSize.y() <= deviceProperties.limits.maxImageDimension2D &&
+ imageSize.z() <= deviceProperties.limits.maxImageArrayLayers;
+ break;
+ case IMAGE_TYPE_CUBE:
+ isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimensionCube &&
+ imageSize.y() <= deviceProperties.limits.maxImageDimensionCube;
+ break;
+ case IMAGE_TYPE_CUBE_ARRAY:
+ isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimensionCube &&
+ imageSize.y() <= deviceProperties.limits.maxImageDimensionCube &&
+ imageSize.z() <= deviceProperties.limits.maxImageArrayLayers;
+ break;
+ case IMAGE_TYPE_3D:
+ isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension3D &&
+ imageSize.y() <= deviceProperties.limits.maxImageDimension3D &&
+ imageSize.z() <= deviceProperties.limits.maxImageDimension3D;
+ break;
+ default:
+ DE_FATAL("Unknown image type");
+ }
+
+ if (!isImageSizeValid)
+ {
+ std::ostringstream notSupportedStream;
+
+ notSupportedStream << "Image type (" << getImageTypeName(imageType) << ") with size (" << imageSize.x() << ", " << imageSize.y() << ", " << imageSize.z() << ") not supported by device" << std::endl;
+
+ const std::string notSupportedString = notSupportedStream.str();
+
+ TCU_THROW(NotSupportedError, notSupportedString.c_str());
+ }
+}
+
+void MultisampleInstanceBase::validateImageFeatureFlags (const InstanceInterface& instance,
+ const VkPhysicalDevice physicalDevice,
+ const VkFormat format,
+ const VkFormatFeatureFlags featureFlags) const
+{
+ const VkFormatProperties formatProperties = getPhysicalDeviceFormatProperties(instance, physicalDevice, format);
+
+ if ((formatProperties.optimalTilingFeatures & featureFlags) != featureFlags)
+ {
+ std::ostringstream notSupportedStream;
+
+ notSupportedStream << "Device does not support image format " << format << " for feature flags " << featureFlags << std::endl;
+
+ const std::string notSupportedString = notSupportedStream.str();
+
+ TCU_THROW(NotSupportedError, notSupportedString.c_str());
+ }
+}
+
+void MultisampleInstanceBase::validateImageInfo (const InstanceInterface& instance,
+ const VkPhysicalDevice physicalDevice,
+ const VkImageCreateInfo& imageInfo) const
+{
+ VkImageFormatProperties imageFormatProps;
+ instance.getPhysicalDeviceImageFormatProperties(physicalDevice, imageInfo.format, imageInfo.imageType, imageInfo.tiling, imageInfo.usage, imageInfo.flags, &imageFormatProps);
+
+ if (imageFormatProps.maxExtent.width < imageInfo.extent.width ||
+ imageFormatProps.maxExtent.height < imageInfo.extent.height ||
+ imageFormatProps.maxExtent.depth < imageInfo.extent.depth)
+ {
+ std::ostringstream notSupportedStream;
+
+ notSupportedStream << "Image extent ("
+ << imageInfo.extent.width << ", "
+ << imageInfo.extent.height << ", "
+ << imageInfo.extent.depth
+ << ") exceeds allowed maximum ("
+ << imageFormatProps.maxExtent.width << ", "
+ << imageFormatProps.maxExtent.height << ", "
+ << imageFormatProps.maxExtent.depth
+ << ")"
+ << std::endl;
+
+ const std::string notSupportedString = notSupportedStream.str();
+
+ TCU_THROW(NotSupportedError, notSupportedString.c_str());
+ }
+
+ if (imageFormatProps.maxArrayLayers < imageInfo.arrayLayers)
+ {
+ std::ostringstream notSupportedStream;
+
+ notSupportedStream << "Image layers count of " << imageInfo.arrayLayers << " exceeds allowed maximum which is " << imageFormatProps.maxArrayLayers << std::endl;
+
+ const std::string notSupportedString = notSupportedStream.str();
+
+ TCU_THROW(NotSupportedError, notSupportedString.c_str());
+ }
+
+ if (!(imageFormatProps.sampleCounts & imageInfo.samples))
+ {
+ std::ostringstream notSupportedStream;
+
+ notSupportedStream << "Samples count of " << imageInfo.samples << " not supported for image" << std::endl;
+
+ const std::string notSupportedString = notSupportedStream.str();
+
+ TCU_THROW(NotSupportedError, notSupportedString.c_str());
+ }
+}
+
+} // multisample
+} // pipeline
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.hpp
new file mode 100644
index 0000000..ed20661
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.hpp
@@ -0,0 +1,146 @@
+#ifndef _VKTPIPELINEMULTISAMPLEBASE_HPP
+#define _VKTPIPELINEMULTISAMPLEBASE_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file vktPipelineMultisampleBase.hpp
+ * \brief Multisample Tests Base Classes
+ *//*--------------------------------------------------------------------*/
+
+#include "vktPipelineMultisampleTestsUtil.hpp"
+#include "vktTestCase.hpp"
+#include "tcuVector.hpp"
+
+namespace vkt
+{
+namespace pipeline
+{
+namespace multisample
+{
+
+struct ImageMSParams
+{
+ ImageMSParams(const vk::VkSampleCountFlagBits samples, const tcu::UVec3& size) : numSamples(samples), imageSize(size) {}
+
+ vk::VkSampleCountFlagBits numSamples;
+ tcu::UVec3 imageSize;
+};
+
+class MultisampleCaseBase : public TestCase
+{
+public:
+ MultisampleCaseBase (tcu::TestContext& testCtx,
+ const std::string& name,
+ const ImageMSParams& imageMSParams)
+ : TestCase(testCtx, name, "")
+ , m_imageMSParams(imageMSParams)
+ {}
+
+protected:
+ const ImageMSParams m_imageMSParams;
+};
+
+typedef MultisampleCaseBase* (*MultisampleCaseFuncPtr)(tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams);
+
+class MultisampleInstanceBase : public TestInstance
+{
+public:
+ MultisampleInstanceBase (Context& context,
+ const ImageMSParams& imageMSParams)
+ : TestInstance (context)
+ , m_imageMSParams (imageMSParams)
+ , m_imageType (IMAGE_TYPE_2D)
+ , m_imageFormat (tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8))
+ {}
+
+ typedef std::vector<vk::VkVertexInputAttributeDescription> VertexAttribDescVec;
+
+ struct VertexDataDesc
+ {
+ vk::VkPrimitiveTopology primitiveTopology;
+ deUint32 verticesCount;
+ deUint32 dataStride;
+ vk::VkDeviceSize dataSize;
+ VertexAttribDescVec vertexAttribDescVec;
+ };
+
+protected:
+
+ void validateImageSize (const vk::InstanceInterface& instance,
+ const vk::VkPhysicalDevice physicalDevice,
+ const ImageType imageType,
+ const tcu::UVec3& imageSize) const;
+
+ void validateImageFeatureFlags (const vk::InstanceInterface& instance,
+ const vk::VkPhysicalDevice physicalDevice,
+ const vk::VkFormat format,
+ const vk::VkFormatFeatureFlags featureFlags) const;
+
+ void validateImageInfo (const vk::InstanceInterface& instance,
+ const vk::VkPhysicalDevice physicalDevice,
+ const vk::VkImageCreateInfo& imageInfo) const;
+
+ virtual VertexDataDesc getVertexDataDescripton (void) const = 0;
+
+ virtual void uploadVertexData (const vk::Allocation& vertexBufferAllocation,
+ const VertexDataDesc& vertexDataDescripton) const = 0;
+protected:
+ const ImageMSParams m_imageMSParams;
+ const ImageType m_imageType;
+ const tcu::TextureFormat m_imageFormat;
+};
+
+} // multisample
+
+template <class CaseClass>
+tcu::TestCaseGroup* makeMSGroup (tcu::TestContext& testCtx,
+ const std::string groupName,
+ const tcu::UVec3 imageSizes[],
+ const deUint32 imageSizesElemCount,
+ const vk::VkSampleCountFlagBits imageSamples[],
+ const deUint32 imageSamplesElemCount)
+{
+ de::MovePtr<tcu::TestCaseGroup> caseGroup(new tcu::TestCaseGroup(testCtx, groupName.c_str(), ""));
+
+ for (deUint32 imageSizeNdx = 0u; imageSizeNdx < imageSizesElemCount; ++imageSizeNdx)
+ {
+ const tcu::UVec3 imageSize = imageSizes[imageSizeNdx];
+ std::ostringstream imageSizeStream;
+
+ imageSizeStream << imageSize.x() << "_" << imageSize.y() << "_" << imageSize.z();
+
+ de::MovePtr<tcu::TestCaseGroup> sizeGroup(new tcu::TestCaseGroup(testCtx, imageSizeStream.str().c_str(), ""));
+
+ for (deUint32 imageSamplesNdx = 0u; imageSamplesNdx < imageSamplesElemCount; ++imageSamplesNdx)
+ {
+ const vk::VkSampleCountFlagBits samples = imageSamples[imageSamplesNdx];
+ const multisample::ImageMSParams imageMSParams = multisample::ImageMSParams(samples, imageSize);
+
+ sizeGroup->addChild(CaseClass::createCase(testCtx, "samples_" + de::toString(samples), imageMSParams));
+ }
+
+ caseGroup->addChild(sizeGroup.release());
+ }
+ return caseGroup.release();
+}
+
+} // pipeline
+} // vkt
+
+#endif // _VKTPIPELINEMULTISAMPLEBASE_HPP
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp
new file mode 100644
index 0000000..4ad1644
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp
@@ -0,0 +1,550 @@
+/*------------------------------------------------------------------------
+* Vulkan Conformance Tests
+* ------------------------
+*
+* Copyright (c) 2016 The Khronos Group Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*//*
+* \file vktPipelineMultisampleBaseResolve.cpp
+* \brief Base class for tests that check results of multisample resolve
+*//*--------------------------------------------------------------------*/
+
+#include "vktPipelineMultisampleBaseResolve.hpp"
+#include "vktPipelineMakeUtil.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include <vector>
+
+namespace vkt
+{
+namespace pipeline
+{
+namespace multisample
+{
+
+using namespace vk;
+
+tcu::TestStatus MSInstanceBaseResolve::iterate (void)
+{
+ const InstanceInterface& instance = m_context.getInstanceInterface();
+ const DeviceInterface& deviceInterface = m_context.getDeviceInterface();
+ const VkDevice device = m_context.getDevice();
+ const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice();
+ Allocator& allocator = m_context.getDefaultAllocator();
+ const VkQueue queue = m_context.getUniversalQueue();
+ const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
+
+ VkImageCreateInfo imageMSInfo;
+ VkImageCreateInfo imageRSInfo;
+
+ // Check if image size does not exceed device limits
+ validateImageSize(instance, physicalDevice, m_imageType, m_imageMSParams.imageSize);
+
+ // Check if device supports image format as color attachment
+ validateImageFeatureFlags(instance, physicalDevice, mapTextureFormat(m_imageFormat), VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT);
+
+ imageMSInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
+ imageMSInfo.pNext = DE_NULL;
+ imageMSInfo.flags = 0u;
+ imageMSInfo.imageType = mapImageType(m_imageType);
+ imageMSInfo.format = mapTextureFormat(m_imageFormat);
+ imageMSInfo.extent = makeExtent3D(getLayerSize(m_imageType, m_imageMSParams.imageSize));
+ imageMSInfo.arrayLayers = getNumLayers(m_imageType, m_imageMSParams.imageSize);
+ imageMSInfo.mipLevels = 1u;
+ imageMSInfo.samples = m_imageMSParams.numSamples;
+ imageMSInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
+ imageMSInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
+ imageMSInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+ imageMSInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
+ imageMSInfo.queueFamilyIndexCount = 0u;
+ imageMSInfo.pQueueFamilyIndices = DE_NULL;
+
+ if (m_imageType == IMAGE_TYPE_CUBE || m_imageType == IMAGE_TYPE_CUBE_ARRAY)
+ {
+ imageMSInfo.flags |= VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
+ }
+
+ validateImageInfo(instance, physicalDevice, imageMSInfo);
+
+ const de::UniquePtr<Image> imageMS(new Image(deviceInterface, device, allocator, imageMSInfo, MemoryRequirement::Any));
+
+ imageRSInfo = imageMSInfo;
+ imageRSInfo.samples = VK_SAMPLE_COUNT_1_BIT;
+
+ validateImageInfo(instance, physicalDevice, imageRSInfo);
+
+ const de::UniquePtr<Image> imageRS(new Image(deviceInterface, device, allocator, imageRSInfo, MemoryRequirement::Any));
+
+ // Create render pass
+ const VkAttachmentDescription attachmentMSDesc =
+ {
+ (VkAttachmentDescriptionFlags)0u, // VkAttachmentDescriptionFlags flags;
+ imageMSInfo.format, // VkFormat format;
+ imageMSInfo.samples, // VkSampleCountFlagBits samples;
+ VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp;
+ VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp;
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp;
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout initialLayout;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout;
+ };
+
+ const VkAttachmentDescription attachmentRSDesc =
+ {
+ (VkAttachmentDescriptionFlags)0u, // VkAttachmentDescriptionFlags flags;
+ imageRSInfo.format, // VkFormat format;
+ imageRSInfo.samples, // VkSampleCountFlagBits samples;
+ VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp;
+ VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp;
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp;
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout initialLayout;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout;
+ };
+
+ const VkAttachmentDescription attachments[] = { attachmentMSDesc, attachmentRSDesc };
+
+ const VkAttachmentReference attachmentMSRef =
+ {
+ 0u, // deUint32 attachment;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout layout;
+ };
+
+ const VkAttachmentReference attachmentRSRef =
+ {
+ 1u, // deUint32 attachment;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout layout;
+ };
+
+ const VkAttachmentReference* resolveAttachment = m_imageMSParams.numSamples == VK_SAMPLE_COUNT_1_BIT ? DE_NULL : &attachmentRSRef;
+
+ const VkSubpassDescription subpassDescription =
+ {
+ (VkSubpassDescriptionFlags)0u, // VkSubpassDescriptionFlags flags;
+ VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint;
+ 0u, // deUint32 inputAttachmentCount;
+ DE_NULL, // const VkAttachmentReference* pInputAttachments;
+ 1u, // deUint32 colorAttachmentCount;
+ &attachmentMSRef, // const VkAttachmentReference* pColorAttachments;
+ resolveAttachment, // const VkAttachmentReference* pResolveAttachments;
+ DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment;
+ 0u, // deUint32 preserveAttachmentCount;
+ DE_NULL // const deUint32* pPreserveAttachments;
+ };
+
+ const VkRenderPassCreateInfo renderPassInfo =
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkRenderPassCreateFlags)0u, // VkRenderPassCreateFlags flags;
+ 2u, // deUint32 attachmentCount;
+ attachments, // const VkAttachmentDescription* pAttachments;
+ 1u, // deUint32 subpassCount;
+ &subpassDescription, // const VkSubpassDescription* pSubpasses;
+ 0u, // deUint32 dependencyCount;
+ DE_NULL // const VkSubpassDependency* pDependencies;
+ };
+
+ const Unique<VkRenderPass> renderPass(createRenderPass(deviceInterface, device, &renderPassInfo));
+
+ const VkImageSubresourceRange fullImageRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, imageMSInfo.mipLevels, 0u, imageMSInfo.arrayLayers);
+
+ // Create color attachments image views
+ const Unique<VkImageView> imageMSView(makeImageView(deviceInterface, device, **imageMS, mapImageViewType(m_imageType), imageMSInfo.format, fullImageRange));
+ const Unique<VkImageView> imageRSView(makeImageView(deviceInterface, device, **imageRS, mapImageViewType(m_imageType), imageMSInfo.format, fullImageRange));
+
+ const VkImageView attachmentsViews[] = { *imageMSView, *imageRSView };
+
+ // Create framebuffer
+ const VkFramebufferCreateInfo framebufferInfo =
+ {
+ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkFramebufferCreateFlags)0u, // VkFramebufferCreateFlags flags;
+ *renderPass, // VkRenderPass renderPass;
+ 2u, // uint32_t attachmentCount;
+ attachmentsViews, // const VkImageView* pAttachments;
+ imageMSInfo.extent.width, // uint32_t width;
+ imageMSInfo.extent.height, // uint32_t height;
+ imageMSInfo.arrayLayers, // uint32_t layers;
+ };
+
+ const Unique<VkFramebuffer> framebuffer(createFramebuffer(deviceInterface, device, &framebufferInfo));
+
+ // Create pipeline layout
+ const VkPipelineLayoutCreateInfo pipelineLayoutParams =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineLayoutCreateFlags)0u, // VkPipelineLayoutCreateFlags flags;
+ 0u, // deUint32 setLayoutCount;
+ DE_NULL, // const VkDescriptorSetLayout* pSetLayouts;
+ 0u, // deUint32 pushConstantRangeCount;
+ DE_NULL, // const VkPushConstantRange* pPushConstantRanges;
+ };
+
+ const Unique<VkPipelineLayout> pipelineLayout(createPipelineLayout(deviceInterface, device, &pipelineLayoutParams));
+
+ // Create vertex attributes data
+ const VertexDataDesc vertexDataDesc = getVertexDataDescripton();
+
+ de::SharedPtr<Buffer> vertexBuffer = de::SharedPtr<Buffer>(new Buffer(deviceInterface, device, allocator, makeBufferCreateInfo(vertexDataDesc.dataSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), MemoryRequirement::HostVisible));
+ const Allocation& vertexBufferAllocation = vertexBuffer->getAllocation();
+
+ uploadVertexData(vertexBufferAllocation, vertexDataDesc);
+
+ flushMappedMemoryRange(deviceInterface, device, vertexBufferAllocation.getMemory(), vertexBufferAllocation.getOffset(), VK_WHOLE_SIZE);
+
+ const VkVertexInputBindingDescription vertexBinding =
+ {
+ 0u, // deUint32 binding;
+ vertexDataDesc.dataStride, // deUint32 stride;
+ VK_VERTEX_INPUT_RATE_VERTEX // VkVertexInputRate inputRate;
+ };
+
+ const VkPipelineVertexInputStateCreateInfo vertexInputStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineVertexInputStateCreateFlags)0u, // VkPipelineVertexInputStateCreateFlags flags;
+ 1u, // uint32_t vertexBindingDescriptionCount;
+ &vertexBinding, // const VkVertexInputBindingDescription* pVertexBindingDescriptions;
+ static_cast<deUint32>(vertexDataDesc.vertexAttribDescVec.size()), // uint32_t vertexAttributeDescriptionCount;
+ dataPointer(vertexDataDesc.vertexAttribDescVec), // const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
+ };
+
+ const VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineInputAssemblyStateCreateFlags)0u, // VkPipelineInputAssemblyStateCreateFlags flags;
+ vertexDataDesc.primitiveTopology, // VkPrimitiveTopology topology;
+ VK_FALSE, // VkBool32 primitiveRestartEnable;
+ };
+
+ const VkViewport viewport =
+ {
+ 0.0f, 0.0f,
+ static_cast<float>(imageMSInfo.extent.width), static_cast<float>(imageMSInfo.extent.height),
+ 0.0f, 1.0f
+ };
+
+ const VkRect2D scissor =
+ {
+ makeOffset2D(0, 0),
+ makeExtent2D(imageMSInfo.extent.width, imageMSInfo.extent.height),
+ };
+
+ const VkPipelineViewportStateCreateInfo viewportStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineViewportStateCreateFlags)0u, // VkPipelineViewportStateCreateFlags flags;
+ 1u, // uint32_t viewportCount;
+ &viewport, // const VkViewport* pViewports;
+ 1u, // uint32_t scissorCount;
+ &scissor, // const VkRect2D* pScissors;
+ };
+
+ const VkPipelineRasterizationStateCreateInfo rasterizationStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineRasterizationStateCreateFlags)0u, // VkPipelineRasterizationStateCreateFlags flags;
+ VK_FALSE, // VkBool32 depthClampEnable;
+ VK_FALSE, // VkBool32 rasterizerDiscardEnable;
+ VK_POLYGON_MODE_FILL, // VkPolygonMode polygonMode;
+ VK_CULL_MODE_NONE, // VkCullModeFlags cullMode;
+ VK_FRONT_FACE_COUNTER_CLOCKWISE, // VkFrontFace frontFace;
+ VK_FALSE, // VkBool32 depthBiasEnable;
+ 0.0f, // float depthBiasConstantFactor;
+ 0.0f, // float depthBiasClamp;
+ 0.0f, // float depthBiasSlopeFactor;
+ 1.0f, // float lineWidth;
+ };
+
+ const VkPipelineMultisampleStateCreateInfo multisampleStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineMultisampleStateCreateFlags)0u, // VkPipelineMultisampleStateCreateFlags flags;
+ imageMSInfo.samples, // VkSampleCountFlagBits rasterizationSamples;
+ VK_TRUE, // VkBool32 sampleShadingEnable;
+ 1.0f, // float minSampleShading;
+ DE_NULL, // const VkSampleMask* pSampleMask;
+ VK_FALSE, // VkBool32 alphaToCoverageEnable;
+ VK_FALSE, // VkBool32 alphaToOneEnable;
+ };
+
+ const VkStencilOpState stencilOpState = makeStencilOpState
+ (
+ VK_STENCIL_OP_KEEP, // stencil fail
+ VK_STENCIL_OP_KEEP, // depth & stencil pass
+ VK_STENCIL_OP_KEEP, // depth only fail
+ VK_COMPARE_OP_ALWAYS, // compare op
+ 0u, // compare mask
+ 0u, // write mask
+ 0u // reference
+ );
+
+ const VkPipelineDepthStencilStateCreateInfo depthStencilStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineDepthStencilStateCreateFlags)0u, // VkPipelineDepthStencilStateCreateFlags flags;
+ VK_FALSE, // VkBool32 depthTestEnable;
+ VK_FALSE, // VkBool32 depthWriteEnable;
+ VK_COMPARE_OP_LESS, // VkCompareOp depthCompareOp;
+ VK_FALSE, // VkBool32 depthBoundsTestEnable;
+ VK_FALSE, // VkBool32 stencilTestEnable;
+ stencilOpState, // VkStencilOpState front;
+ stencilOpState, // VkStencilOpState back;
+ 0.0f, // float minDepthBounds;
+ 1.0f, // float maxDepthBounds;
+ };
+
+ const VkColorComponentFlags colorComponentsAll = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT;
+
+ const VkPipelineColorBlendAttachmentState colorBlendAttachmentState =
+ {
+ VK_FALSE, // VkBool32 blendEnable;
+ VK_BLEND_FACTOR_ONE, // VkBlendFactor srcColorBlendFactor;
+ VK_BLEND_FACTOR_ZERO, // VkBlendFactor dstColorBlendFactor;
+ VK_BLEND_OP_ADD, // VkBlendOp colorBlendOp;
+ VK_BLEND_FACTOR_ONE, // VkBlendFactor srcAlphaBlendFactor;
+ VK_BLEND_FACTOR_ZERO, // VkBlendFactor dstAlphaBlendFactor;
+ VK_BLEND_OP_ADD, // VkBlendOp alphaBlendOp;
+ colorComponentsAll, // VkColorComponentFlags colorWriteMask;
+ };
+
+ const VkPipelineColorBlendStateCreateInfo colorBlendStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineColorBlendStateCreateFlags)0u, // VkPipelineColorBlendStateCreateFlags flags;
+ VK_FALSE, // VkBool32 logicOpEnable;
+ VK_LOGIC_OP_COPY, // VkLogicOp logicOp;
+ 1u, // deUint32 attachmentCount;
+ &colorBlendAttachmentState, // const VkPipelineColorBlendAttachmentState* pAttachments;
+ { 0.0f, 0.0f, 0.0f, 0.0f }, // float blendConstants[4];
+ };
+
+ const Unique<VkShaderModule> vsModule(createShaderModule(deviceInterface, device, m_context.getBinaryCollection().get("vertex_shader"), (VkShaderModuleCreateFlags)0));
+
+ const VkPipelineShaderStageCreateInfo vsShaderStageInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineShaderStageCreateFlags)0u, // VkPipelineShaderStageCreateFlags flags;
+ VK_SHADER_STAGE_VERTEX_BIT, // VkShaderStageFlagBits stage;
+ *vsModule, // VkShaderModule module;
+ "main", // const char* pName;
+ DE_NULL, // const VkSpecializationInfo* pSpecializationInfo;
+ };
+
+ const Unique<VkShaderModule> fsModule(createShaderModule(deviceInterface, device, m_context.getBinaryCollection().get("fragment_shader"), (VkShaderModuleCreateFlags)0));
+
+ const VkPipelineShaderStageCreateInfo fsShaderStageInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineShaderStageCreateFlags)0u, // VkPipelineShaderStageCreateFlags flags;
+ VK_SHADER_STAGE_FRAGMENT_BIT, // VkShaderStageFlagBits stage;
+ *fsModule, // VkShaderModule module;
+ "main", // const char* pName;
+ DE_NULL, // const VkSpecializationInfo* pSpecializationInfo;
+ };
+
+ const VkPipelineShaderStageCreateInfo shaderStageInfos[] = { vsShaderStageInfo, fsShaderStageInfo };
+
+ const VkGraphicsPipelineCreateInfo graphicsPipelineInfo =
+ {
+ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineCreateFlags)0, // VkPipelineCreateFlags flags;
+ 2u, // deUint32 stageCount;
+ shaderStageInfos, // const VkPipelineShaderStageCreateInfo* pStages;
+ &vertexInputStateInfo, // const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
+ &inputAssemblyStateInfo, // const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
+ DE_NULL, // const VkPipelineTessellationStateCreateInfo* pTessellationState;
+ &viewportStateInfo, // const VkPipelineViewportStateCreateInfo* pViewportState;
+ &rasterizationStateInfo, // const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
+ &multisampleStateInfo, // const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
+ &depthStencilStateInfo, // const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
+ &colorBlendStateInfo, // const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
+ DE_NULL, // const VkPipelineDynamicStateCreateInfo* pDynamicState;
+ *pipelineLayout, // VkPipelineLayout layout;
+ *renderPass, // VkRenderPass renderPass;
+ 0u, // deUint32 subpass;
+ DE_NULL, // VkPipeline basePipelineHandle;
+ 0u, // deInt32 basePipelineIndex;
+ };
+
+ // Create graphics pipeline
+ const Unique<VkPipeline> graphicsPipeline(createGraphicsPipeline(deviceInterface, device, DE_NULL, &graphicsPipelineInfo));
+
+ // Create command buffer for compute and transfer oparations
+ const Unique<VkCommandPool> commandPool(makeCommandPool(deviceInterface, device, queueFamilyIndex));
+ const Unique<VkCommandBuffer> commandBuffer(makeCommandBuffer(deviceInterface, device, *commandPool));
+
+ // Start recording commands
+ beginCommandBuffer(deviceInterface, *commandBuffer);
+
+ {
+ VkImageMemoryBarrier imageOutputAttachmentBarriers[2];
+
+ imageOutputAttachmentBarriers[0] = makeImageMemoryBarrier
+ (
+ 0u,
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+ VK_IMAGE_LAYOUT_UNDEFINED,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ **imageMS,
+ fullImageRange
+ );
+
+ imageOutputAttachmentBarriers[1] = makeImageMemoryBarrier
+ (
+ 0u,
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+ VK_IMAGE_LAYOUT_UNDEFINED,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ **imageRS,
+ fullImageRange
+ );
+
+ deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 2u, imageOutputAttachmentBarriers);
+ }
+
+ {
+ const VkDeviceSize vertexStartOffset = 0u;
+
+ std::vector<VkClearValue> clearValues;
+ clearValues.push_back(makeClearValueColor(tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f)));
+ clearValues.push_back(makeClearValueColor(tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f)));
+
+ const vk::VkRect2D renderArea =
+ {
+ makeOffset2D(0u, 0u),
+ makeExtent2D(imageMSInfo.extent.width, imageMSInfo.extent.height),
+ };
+
+ // Begin render pass
+ const VkRenderPassBeginInfo renderPassBeginInfo =
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ *renderPass, // VkRenderPass renderPass;
+ *framebuffer, // VkFramebuffer framebuffer;
+ renderArea, // VkRect2D renderArea;
+ static_cast<deUint32>(clearValues.size()), // deUint32 clearValueCount;
+ &clearValues[0], // const VkClearValue* pClearValues;
+ };
+
+ deviceInterface.cmdBeginRenderPass(*commandBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+
+ // Bind graphics pipeline
+ deviceInterface.cmdBindPipeline(*commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *graphicsPipeline);
+
+ // Bind vertex buffer
+ deviceInterface.cmdBindVertexBuffers(*commandBuffer, 0u, 1u, &vertexBuffer->get(), &vertexStartOffset);
+
+ // Draw full screen quad
+ deviceInterface.cmdDraw(*commandBuffer, vertexDataDesc.verticesCount, 1u, 0u, 0u);
+
+ // End render pass
+ deviceInterface.cmdEndRenderPass(*commandBuffer);
+ }
+
+ const VkImage sourceImage = m_imageMSParams.numSamples == VK_SAMPLE_COUNT_1_BIT ? **imageMS : **imageRS;
+
+ {
+ const VkImageMemoryBarrier imageTransferSrcBarrier = makeImageMemoryBarrier
+ (
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+ VK_ACCESS_TRANSFER_READ_BIT,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+ sourceImage,
+ fullImageRange
+ );
+
+ deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &imageTransferSrcBarrier);
+ }
+
+ // Copy data from resolve image to buffer
+ const deUint32 imageRSSizeInBytes = getImageSizeInBytes(imageRSInfo.extent, imageRSInfo.arrayLayers, m_imageFormat, imageRSInfo.mipLevels);
+
+ const VkBufferCreateInfo bufferRSInfo = makeBufferCreateInfo(imageRSSizeInBytes, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
+ const de::UniquePtr<Buffer> bufferRS(new Buffer(deviceInterface, device, allocator, bufferRSInfo, MemoryRequirement::HostVisible));
+
+ {
+ const VkBufferImageCopy bufferImageCopy =
+ {
+ 0u, // VkDeviceSize bufferOffset;
+ 0u, // deUint32 bufferRowLength;
+ 0u, // deUint32 bufferImageHeight;
+ makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, imageRSInfo.arrayLayers), // VkImageSubresourceLayers imageSubresource;
+ makeOffset3D(0, 0, 0), // VkOffset3D imageOffset;
+ imageRSInfo.extent, // VkExtent3D imageExtent;
+ };
+
+ deviceInterface.cmdCopyImageToBuffer(*commandBuffer, sourceImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, bufferRS->get(), 1u, &bufferImageCopy);
+ }
+
+ {
+ const VkBufferMemoryBarrier bufferRSHostReadBarrier = makeBufferMemoryBarrier
+ (
+ VK_ACCESS_TRANSFER_WRITE_BIT,
+ VK_ACCESS_HOST_READ_BIT,
+ bufferRS->get(),
+ 0u,
+ imageRSSizeInBytes
+ );
+
+ deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &bufferRSHostReadBarrier, 0u, DE_NULL);
+ }
+
+ // End recording commands
+ VK_CHECK(deviceInterface.endCommandBuffer(*commandBuffer));
+
+ // Submit commands for execution and wait for completion
+ submitCommandsAndWait(deviceInterface, device, queue, *commandBuffer);
+
+ // Retrieve data from buffer to host memory
+ const Allocation& bufferRSAllocation = bufferRS->getAllocation();
+
+ invalidateMappedMemoryRange(deviceInterface, device, bufferRSAllocation.getMemory(), bufferRSAllocation.getOffset(), VK_WHOLE_SIZE);
+
+ const tcu::ConstPixelBufferAccess bufferRSData (m_imageFormat,
+ imageRSInfo.extent.width,
+ imageRSInfo.extent.height,
+ imageRSInfo.extent.depth * imageRSInfo.arrayLayers,
+ bufferRSAllocation.getHostPtr());
+
+ std::stringstream imageName;
+ imageName << getImageTypeName(m_imageType) << "_" << bufferRSData.getWidth() << "_" << bufferRSData.getHeight() << "_" << bufferRSData.getDepth() << std::endl;
+
+ m_context.getTestContext().getLog()
+ << tcu::TestLog::Section(imageName.str(), imageName.str())
+ << tcu::LogImage("image", "", bufferRSData)
+ << tcu::TestLog::EndSection;
+
+ return verifyImageData(imageRSInfo, bufferRSData);
+}
+
+} // multisample
+} // pipeline
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.hpp
new file mode 100644
index 0000000..c123a15
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.hpp
@@ -0,0 +1,67 @@
+#ifndef _VKTPIPELINEMULTISAMPLEBASERESOLVE_HPP
+#define _VKTPIPELINEMULTISAMPLEBASERESOLVE_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file vktPipelineMultisampleBaseResolve.hpp
+ * \brief Base class for tests that check results of multisample resolve
+ *//*--------------------------------------------------------------------*/
+
+#include "vktPipelineMultisampleBase.hpp"
+#include "vktTestCase.hpp"
+#include "tcuVector.hpp"
+
+namespace vkt
+{
+namespace pipeline
+{
+namespace multisample
+{
+
+class MSCaseBaseResolve : public MultisampleCaseBase
+{
+public:
+ MSCaseBaseResolve (tcu::TestContext& testCtx,
+ const std::string& name,
+ const ImageMSParams& imageMSParams)
+ : MultisampleCaseBase(testCtx, name, imageMSParams)
+ {}
+};
+
+class MSInstanceBaseResolve : public MultisampleInstanceBase
+{
+public:
+ MSInstanceBaseResolve (Context& context,
+ const ImageMSParams& imageMSParams)
+ : MultisampleInstanceBase(context, imageMSParams)
+ {}
+
+protected:
+
+ tcu::TestStatus iterate (void);
+
+ virtual tcu::TestStatus verifyImageData (const vk::VkImageCreateInfo& imageRSInfo,
+ const tcu::ConstPixelBufferAccess& dataRS) const = 0;
+};
+
+} // multisample
+} // pipeline
+} // vkt
+
+#endif // _VKTPIPELINEMULTISAMPLEBASERESOLVE_HPP
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp
new file mode 100644
index 0000000..6b670ca
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp
@@ -0,0 +1,1026 @@
+/*------------------------------------------------------------------------
+* Vulkan Conformance Tests
+* ------------------------
+*
+* Copyright (c) 2016 The Khronos Group Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*//*
+* \file vktPipelineMultisampleBaseResolveAndPerSampleFetch.cpp
+* \brief Base class for tests that check results of multisample resolve
+* and/or values of individual samples
+*//*--------------------------------------------------------------------*/
+
+#include "vktPipelineMultisampleBaseResolveAndPerSampleFetch.hpp"
+#include "vktPipelineMakeUtil.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include <vector>
+
+namespace vkt
+{
+namespace pipeline
+{
+namespace multisample
+{
+
+using namespace vk;
+
+void MSCaseBaseResolveAndPerSampleFetch::initPrograms (vk::SourceCollections& programCollection) const
+{
+ // Create vertex shader
+ std::ostringstream vs;
+
+ vs << "#version 440\n"
+ << "layout(location = 0) in vec4 vs_in_position_ndc;\n"
+ << "\n"
+ << "out gl_PerVertex {\n"
+ << " vec4 gl_Position;\n"
+ << "};\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " gl_Position = vs_in_position_ndc;\n"
+ << "}\n";
+
+ programCollection.glslSources.add("per_sample_fetch_vs") << glu::VertexSource(vs.str());
+
+ // Create fragment shader
+ std::ostringstream fs;
+
+ fs << "#version 440\n"
+ << "\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
+ << "\n"
+ << "layout(set = 0, binding = 0, input_attachment_index = 0) uniform subpassInputMS imageMS;\n"
+ << "\n"
+ << "layout(set = 0, binding = 1, std140) uniform SampleBlock {\n"
+ << " int sampleNdx;\n"
+ << "};\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " fs_out_color = subpassLoad(imageMS, sampleNdx);\n"
+ << "}\n";
+
+ programCollection.glslSources.add("per_sample_fetch_fs") << glu::FragmentSource(fs.str());
+}
+
+VkPipelineMultisampleStateCreateInfo MSInstanceBaseResolveAndPerSampleFetch::getMSStateCreateInfo (const ImageMSParams& imageMSParams) const
+{
+ const VkPipelineMultisampleStateCreateInfo multisampleStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineMultisampleStateCreateFlags)0u, // VkPipelineMultisampleStateCreateFlags flags;
+ imageMSParams.numSamples, // VkSampleCountFlagBits rasterizationSamples;
+ VK_TRUE, // VkBool32 sampleShadingEnable;
+ 1.0f, // float minSampleShading;
+ DE_NULL, // const VkSampleMask* pSampleMask;
+ VK_FALSE, // VkBool32 alphaToCoverageEnable;
+ VK_FALSE, // VkBool32 alphaToOneEnable;
+ };
+
+ return multisampleStateInfo;
+}
+
+const VkDescriptorSetLayout* MSInstanceBaseResolveAndPerSampleFetch::createMSPassDescSetLayout(const ImageMSParams& imageMSParams)
+{
+ DE_UNREF(imageMSParams);
+
+ return DE_NULL;
+}
+
+const VkDescriptorSet* MSInstanceBaseResolveAndPerSampleFetch::createMSPassDescSet(const ImageMSParams& imageMSParams, const VkDescriptorSetLayout* descSetLayout)
+{
+ DE_UNREF(imageMSParams);
+ DE_UNREF(descSetLayout);
+
+ return DE_NULL;
+}
+
+tcu::TestStatus MSInstanceBaseResolveAndPerSampleFetch::iterate (void)
+{
+ const InstanceInterface& instance = m_context.getInstanceInterface();
+ const DeviceInterface& deviceInterface = m_context.getDeviceInterface();
+ const VkDevice device = m_context.getDevice();
+ const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice();
+ Allocator& allocator = m_context.getDefaultAllocator();
+ const VkQueue queue = m_context.getUniversalQueue();
+ const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
+
+ VkImageCreateInfo imageMSInfo;
+ VkImageCreateInfo imageRSInfo;
+ const deUint32 firstSubpassAttachmentsCount = 2u;
+
+ // Check if image size does not exceed device limits
+ validateImageSize(instance, physicalDevice, m_imageType, m_imageMSParams.imageSize);
+
+ // Check if device supports image format as color attachment
+ validateImageFeatureFlags(instance, physicalDevice, mapTextureFormat(m_imageFormat), VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT);
+
+ imageMSInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
+ imageMSInfo.pNext = DE_NULL;
+ imageMSInfo.flags = 0u;
+ imageMSInfo.imageType = mapImageType(m_imageType);
+ imageMSInfo.format = mapTextureFormat(m_imageFormat);
+ imageMSInfo.extent = makeExtent3D(getLayerSize(m_imageType, m_imageMSParams.imageSize));
+ imageMSInfo.arrayLayers = getNumLayers(m_imageType, m_imageMSParams.imageSize);
+ imageMSInfo.mipLevels = 1u;
+ imageMSInfo.samples = m_imageMSParams.numSamples;
+ imageMSInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
+ imageMSInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
+ imageMSInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
+ imageMSInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
+ imageMSInfo.queueFamilyIndexCount = 0u;
+ imageMSInfo.pQueueFamilyIndices = DE_NULL;
+
+ if (m_imageType == IMAGE_TYPE_CUBE || m_imageType == IMAGE_TYPE_CUBE_ARRAY)
+ {
+ imageMSInfo.flags |= VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
+ }
+
+ validateImageInfo(instance, physicalDevice, imageMSInfo);
+
+ const de::UniquePtr<Image> imageMS(new Image(deviceInterface, device, allocator, imageMSInfo, MemoryRequirement::Any));
+
+ imageRSInfo = imageMSInfo;
+ imageRSInfo.samples = VK_SAMPLE_COUNT_1_BIT;
+ imageRSInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+
+ validateImageInfo(instance, physicalDevice, imageRSInfo);
+
+ const de::UniquePtr<Image> imageRS(new Image(deviceInterface, device, allocator, imageRSInfo, MemoryRequirement::Any));
+
+ const deUint32 numSamples = static_cast<deUint32>(imageMSInfo.samples);
+
+ std::vector<de::SharedPtr<Image> > imagesPerSampleVec(numSamples);
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ imagesPerSampleVec[sampleNdx] = de::SharedPtr<Image>(new Image(deviceInterface, device, allocator, imageRSInfo, MemoryRequirement::Any));
+ }
+
+ // Create render pass
+ std::vector<VkAttachmentDescription> attachments(firstSubpassAttachmentsCount + numSamples);
+
+ {
+ const VkAttachmentDescription attachmentMSDesc =
+ {
+ (VkAttachmentDescriptionFlags)0u, // VkAttachmentDescriptionFlags flags;
+ imageMSInfo.format, // VkFormat format;
+ imageMSInfo.samples, // VkSampleCountFlagBits samples;
+ VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp;
+ VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp;
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp;
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout initialLayout;
+ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout finalLayout;
+ };
+
+ attachments[0] = attachmentMSDesc;
+
+ const VkAttachmentDescription attachmentRSDesc =
+ {
+ (VkAttachmentDescriptionFlags)0u, // VkAttachmentDescriptionFlags flags;
+ imageRSInfo.format, // VkFormat format;
+ imageRSInfo.samples, // VkSampleCountFlagBits samples;
+ VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp;
+ VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp;
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp;
+ VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout initialLayout;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout;
+ };
+
+ attachments[1] = attachmentRSDesc;
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ attachments[firstSubpassAttachmentsCount + sampleNdx] = attachmentRSDesc;
+ }
+ }
+
+ const VkAttachmentReference attachmentMSColorRef =
+ {
+ 0u, // deUint32 attachment;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout layout;
+ };
+
+ const VkAttachmentReference attachmentMSInputRef =
+ {
+ 0u, // deUint32 attachment;
+ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL // VkImageLayout layout;
+ };
+
+ const VkAttachmentReference attachmentRSColorRef =
+ {
+ 1u, // deUint32 attachment;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout layout;
+ };
+
+ std::vector<VkAttachmentReference> perSampleAttachmentRef(numSamples);
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ const VkAttachmentReference attachmentRef =
+ {
+ firstSubpassAttachmentsCount + sampleNdx, // deUint32 attachment;
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout layout;
+ };
+
+ perSampleAttachmentRef[sampleNdx] = attachmentRef;
+ }
+
+ std::vector<deUint32> preserveAttachments(1u + numSamples);
+
+ for (deUint32 attachNdx = 0u; attachNdx < 1u + numSamples; ++attachNdx)
+ {
+ preserveAttachments[attachNdx] = 1u + attachNdx;
+ }
+
+ std::vector<VkSubpassDescription> subpasses(1u + numSamples);
+ std::vector<VkSubpassDependency> subpassDependencies(numSamples);
+
+ const VkSubpassDescription firstSubpassDesc =
+ {
+ (VkSubpassDescriptionFlags)0u, // VkSubpassDescriptionFlags flags;
+ VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint;
+ 0u, // deUint32 inputAttachmentCount;
+ DE_NULL, // const VkAttachmentReference* pInputAttachments;
+ 1u, // deUint32 colorAttachmentCount;
+ &attachmentMSColorRef, // const VkAttachmentReference* pColorAttachments;
+ &attachmentRSColorRef, // const VkAttachmentReference* pResolveAttachments;
+ DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment;
+ 0u, // deUint32 preserveAttachmentCount;
+ DE_NULL // const deUint32* pPreserveAttachments;
+ };
+
+ subpasses[0] = firstSubpassDesc;
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ const VkSubpassDescription subpassDesc =
+ {
+ (VkSubpassDescriptionFlags)0u, // VkSubpassDescriptionFlags flags;
+ VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint;
+ 1u, // deUint32 inputAttachmentCount;
+ &attachmentMSInputRef, // const VkAttachmentReference* pInputAttachments;
+ 1u, // deUint32 colorAttachmentCount;
+ &perSampleAttachmentRef[sampleNdx], // const VkAttachmentReference* pColorAttachments;
+ DE_NULL, // const VkAttachmentReference* pResolveAttachments;
+ DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment;
+ 1u + sampleNdx, // deUint32 preserveAttachmentCount;
+ dataPointer(preserveAttachments) // const deUint32* pPreserveAttachments;
+ };
+
+ subpasses[1u + sampleNdx] = subpassDesc;
+
+ const VkSubpassDependency subpassDependency =
+ {
+ 0u, // uint32_t srcSubpass;
+ 1u + sampleNdx, // uint32_t dstSubpass;
+ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, // VkPipelineStageFlags srcStageMask;
+ VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, // VkPipelineStageFlags dstStageMask;
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, // VkAccessFlags srcAccessMask;
+ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, // VkAccessFlags dstAccessMask;
+ 0u, // VkDependencyFlags dependencyFlags;
+ };
+
+ subpassDependencies[sampleNdx] = subpassDependency;
+ }
+
+ const VkRenderPassCreateInfo renderPassInfo =
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkRenderPassCreateFlags)0u, // VkRenderPassCreateFlags flags;
+ static_cast<deUint32>(attachments.size()), // deUint32 attachmentCount;
+ dataPointer(attachments), // const VkAttachmentDescription* pAttachments;
+ static_cast<deUint32>(subpasses.size()), // deUint32 subpassCount;
+ dataPointer(subpasses), // const VkSubpassDescription* pSubpasses;
+ static_cast<deUint32>(subpassDependencies.size()), // deUint32 dependencyCount;
+ dataPointer(subpassDependencies) // const VkSubpassDependency* pDependencies;
+ };
+
+ const Unique<VkRenderPass> renderPass(createRenderPass(deviceInterface, device, &renderPassInfo));
+
+ const VkImageSubresourceRange fullImageRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, imageMSInfo.mipLevels, 0u, imageMSInfo.arrayLayers);
+
+ // Create color attachments image views
+ typedef de::SharedPtr<Unique<VkImageView> > VkImageViewSp;
+ std::vector<VkImageViewSp> imageViewsShPtrs(firstSubpassAttachmentsCount + numSamples);
+ std::vector<VkImageView> imageViews(firstSubpassAttachmentsCount + numSamples);
+
+ imageViewsShPtrs[0] = makeVkSharedPtr(makeImageView(deviceInterface, device, **imageMS, mapImageViewType(m_imageType), imageMSInfo.format, fullImageRange));
+ imageViewsShPtrs[1] = makeVkSharedPtr(makeImageView(deviceInterface, device, **imageRS, mapImageViewType(m_imageType), imageRSInfo.format, fullImageRange));
+
+ imageViews[0] = **imageViewsShPtrs[0];
+ imageViews[1] = **imageViewsShPtrs[1];
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ imageViewsShPtrs[firstSubpassAttachmentsCount + sampleNdx] = makeVkSharedPtr(makeImageView(deviceInterface, device, **imagesPerSampleVec[sampleNdx], mapImageViewType(m_imageType), imageRSInfo.format, fullImageRange));
+ imageViews[firstSubpassAttachmentsCount + sampleNdx] = **imageViewsShPtrs[firstSubpassAttachmentsCount + sampleNdx];
+ }
+
+ // Create framebuffer
+ const VkFramebufferCreateInfo framebufferInfo =
+ {
+ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkFramebufferCreateFlags)0u, // VkFramebufferCreateFlags flags;
+ *renderPass, // VkRenderPass renderPass;
+ static_cast<deUint32>(imageViews.size()), // uint32_t attachmentCount;
+ dataPointer(imageViews), // const VkImageView* pAttachments;
+ imageMSInfo.extent.width, // uint32_t width;
+ imageMSInfo.extent.height, // uint32_t height;
+ imageMSInfo.arrayLayers, // uint32_t layers;
+ };
+
+ const Unique<VkFramebuffer> framebuffer(createFramebuffer(deviceInterface, device, &framebufferInfo));
+
+ const VkDescriptorSetLayout* descriptorSetLayoutMSPass = createMSPassDescSetLayout(m_imageMSParams);
+
+ // Create pipeline layout
+ const VkPipelineLayoutCreateInfo pipelineLayoutMSPassParams =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineLayoutCreateFlags)0u, // VkPipelineLayoutCreateFlags flags;
+ descriptorSetLayoutMSPass ? 1u : 0u, // deUint32 setLayoutCount;
+ descriptorSetLayoutMSPass, // const VkDescriptorSetLayout* pSetLayouts;
+ 0u, // deUint32 pushConstantRangeCount;
+ DE_NULL, // const VkPushConstantRange* pPushConstantRanges;
+ };
+
+ const Unique<VkPipelineLayout> pipelineLayoutMSPass(createPipelineLayout(deviceInterface, device, &pipelineLayoutMSPassParams));
+
+ // Create vertex attributes data
+ const VertexDataDesc vertexDataDesc = getVertexDataDescripton();
+
+ de::SharedPtr<Buffer> vertexBuffer = de::SharedPtr<Buffer>(new Buffer(deviceInterface, device, allocator, makeBufferCreateInfo(vertexDataDesc.dataSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), MemoryRequirement::HostVisible));
+ const Allocation& vertexBufferAllocation = vertexBuffer->getAllocation();
+
+ uploadVertexData(vertexBufferAllocation, vertexDataDesc);
+
+ flushMappedMemoryRange(deviceInterface, device, vertexBufferAllocation.getMemory(), vertexBufferAllocation.getOffset(), VK_WHOLE_SIZE);
+
+ const VkVertexInputBindingDescription vertexBinding =
+ {
+ 0u, // deUint32 binding;
+ vertexDataDesc.dataStride, // deUint32 stride;
+ VK_VERTEX_INPUT_RATE_VERTEX // VkVertexInputRate inputRate;
+ };
+
+ const VkPipelineVertexInputStateCreateInfo vertexInputStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineVertexInputStateCreateFlags)0u, // VkPipelineVertexInputStateCreateFlags flags;
+ 1u, // uint32_t vertexBindingDescriptionCount;
+ &vertexBinding, // const VkVertexInputBindingDescription* pVertexBindingDescriptions;
+ static_cast<deUint32>(vertexDataDesc.vertexAttribDescVec.size()), // uint32_t vertexAttributeDescriptionCount;
+ dataPointer(vertexDataDesc.vertexAttribDescVec), // const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
+ };
+
+ const VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineInputAssemblyStateCreateFlags)0u, // VkPipelineInputAssemblyStateCreateFlags flags;
+ vertexDataDesc.primitiveTopology, // VkPrimitiveTopology topology;
+ VK_FALSE, // VkBool32 primitiveRestartEnable;
+ };
+
+ const VkViewport viewport =
+ {
+ 0.0f, 0.0f,
+ static_cast<float>(imageMSInfo.extent.width), static_cast<float>(imageMSInfo.extent.height),
+ 0.0f, 1.0f
+ };
+
+ const VkRect2D scissor =
+ {
+ makeOffset2D(0, 0),
+ makeExtent2D(imageMSInfo.extent.width, imageMSInfo.extent.height),
+ };
+
+ const VkPipelineViewportStateCreateInfo viewportStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineViewportStateCreateFlags)0u, // VkPipelineViewportStateCreateFlags flags;
+ 1u, // uint32_t viewportCount;
+ &viewport, // const VkViewport* pViewports;
+ 1u, // uint32_t scissorCount;
+ &scissor, // const VkRect2D* pScissors;
+ };
+
+ const VkPipelineRasterizationStateCreateInfo rasterizationStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineRasterizationStateCreateFlags)0u, // VkPipelineRasterizationStateCreateFlags flags;
+ VK_FALSE, // VkBool32 depthClampEnable;
+ VK_FALSE, // VkBool32 rasterizerDiscardEnable;
+ VK_POLYGON_MODE_FILL, // VkPolygonMode polygonMode;
+ VK_CULL_MODE_NONE, // VkCullModeFlags cullMode;
+ VK_FRONT_FACE_COUNTER_CLOCKWISE, // VkFrontFace frontFace;
+ VK_FALSE, // VkBool32 depthBiasEnable;
+ 0.0f, // float depthBiasConstantFactor;
+ 0.0f, // float depthBiasClamp;
+ 0.0f, // float depthBiasSlopeFactor;
+ 1.0f, // float lineWidth;
+ };
+
+ const VkPipelineMultisampleStateCreateInfo multisampleStateInfo = getMSStateCreateInfo(m_imageMSParams);
+
+ const VkStencilOpState stencilOpState = makeStencilOpState
+ (
+ VK_STENCIL_OP_KEEP, // stencil fail
+ VK_STENCIL_OP_KEEP, // depth & stencil pass
+ VK_STENCIL_OP_KEEP, // depth only fail
+ VK_COMPARE_OP_ALWAYS, // compare op
+ 0u, // compare mask
+ 0u, // write mask
+ 0u // reference
+ );
+
+ const VkPipelineDepthStencilStateCreateInfo depthStencilStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineDepthStencilStateCreateFlags)0u, // VkPipelineDepthStencilStateCreateFlags flags;
+ VK_FALSE, // VkBool32 depthTestEnable;
+ VK_FALSE, // VkBool32 depthWriteEnable;
+ VK_COMPARE_OP_LESS, // VkCompareOp depthCompareOp;
+ VK_FALSE, // VkBool32 depthBoundsTestEnable;
+ VK_FALSE, // VkBool32 stencilTestEnable;
+ stencilOpState, // VkStencilOpState front;
+ stencilOpState, // VkStencilOpState back;
+ 0.0f, // float minDepthBounds;
+ 1.0f, // float maxDepthBounds;
+ };
+
+ const VkColorComponentFlags colorComponentsAll = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT;
+
+ const VkPipelineColorBlendAttachmentState colorBlendAttachmentState =
+ {
+ VK_FALSE, // VkBool32 blendEnable;
+ VK_BLEND_FACTOR_ONE, // VkBlendFactor srcColorBlendFactor;
+ VK_BLEND_FACTOR_ZERO, // VkBlendFactor dstColorBlendFactor;
+ VK_BLEND_OP_ADD, // VkBlendOp colorBlendOp;
+ VK_BLEND_FACTOR_ONE, // VkBlendFactor srcAlphaBlendFactor;
+ VK_BLEND_FACTOR_ZERO, // VkBlendFactor dstAlphaBlendFactor;
+ VK_BLEND_OP_ADD, // VkBlendOp alphaBlendOp;
+ colorComponentsAll, // VkColorComponentFlags colorWriteMask;
+ };
+
+ const VkPipelineColorBlendStateCreateInfo colorBlendStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineColorBlendStateCreateFlags)0u, // VkPipelineColorBlendStateCreateFlags flags;
+ VK_FALSE, // VkBool32 logicOpEnable;
+ VK_LOGIC_OP_COPY, // VkLogicOp logicOp;
+ 1u, // deUint32 attachmentCount;
+ &colorBlendAttachmentState, // const VkPipelineColorBlendAttachmentState* pAttachments;
+ { 0.0f, 0.0f, 0.0f, 0.0f }, // float blendConstants[4];
+ };
+
+ // Create graphics pipeline for multisample pass
+ const Unique<VkShaderModule> vsMSPassModule(createShaderModule(deviceInterface, device, m_context.getBinaryCollection().get("vertex_shader"), (VkShaderModuleCreateFlags)0u));
+
+ const VkPipelineShaderStageCreateInfo vsMSPassShaderStageInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineShaderStageCreateFlags)0u, // VkPipelineShaderStageCreateFlags flags;
+ VK_SHADER_STAGE_VERTEX_BIT, // VkShaderStageFlagBits stage;
+ *vsMSPassModule, // VkShaderModule module;
+ "main", // const char* pName;
+ DE_NULL, // const VkSpecializationInfo* pSpecializationInfo;
+ };
+
+ const Unique<VkShaderModule> fsMSPassModule(createShaderModule(deviceInterface, device, m_context.getBinaryCollection().get("fragment_shader"), (VkShaderModuleCreateFlags)0u));
+
+ const VkPipelineShaderStageCreateInfo fsMSPassShaderStageInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineShaderStageCreateFlags)0u, // VkPipelineShaderStageCreateFlags flags;
+ VK_SHADER_STAGE_FRAGMENT_BIT, // VkShaderStageFlagBits stage;
+ *fsMSPassModule, // VkShaderModule module;
+ "main", // const char* pName;
+ DE_NULL, // const VkSpecializationInfo* pSpecializationInfo;
+ };
+
+ const VkPipelineShaderStageCreateInfo shaderStageInfosMSPass[] = { vsMSPassShaderStageInfo, fsMSPassShaderStageInfo };
+
+ const VkGraphicsPipelineCreateInfo graphicsPipelineInfoMSPass =
+ {
+ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineCreateFlags)0u, // VkPipelineCreateFlags flags;
+ 2u, // deUint32 stageCount;
+ shaderStageInfosMSPass, // const VkPipelineShaderStageCreateInfo* pStages;
+ &vertexInputStateInfo, // const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
+ &inputAssemblyStateInfo, // const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
+ DE_NULL, // const VkPipelineTessellationStateCreateInfo* pTessellationState;
+ &viewportStateInfo, // const VkPipelineViewportStateCreateInfo* pViewportState;
+ &rasterizationStateInfo, // const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
+ &multisampleStateInfo, // const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
+ &depthStencilStateInfo, // const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
+ &colorBlendStateInfo, // const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
+ DE_NULL, // const VkPipelineDynamicStateCreateInfo* pDynamicState;
+ *pipelineLayoutMSPass, // VkPipelineLayout layout;
+ *renderPass, // VkRenderPass renderPass;
+ 0u, // deUint32 subpass;
+ DE_NULL, // VkPipeline basePipelineHandle;
+ 0u, // deInt32 basePipelineIndex;
+ };
+
+ const Unique<VkPipeline> graphicsPipelineMSPass(createGraphicsPipeline(deviceInterface, device, DE_NULL, &graphicsPipelineInfoMSPass));
+
+ typedef de::SharedPtr<Unique<VkPipeline> > VkPipelineSp;
+ std::vector<VkPipelineSp> graphicsPipelinesPerSampleFetch(numSamples);
+
+ // Create descriptor set layout
+ const Unique<VkDescriptorSetLayout> descriptorSetLayout(
+ DescriptorSetLayoutBuilder()
+ .addSingleBinding(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_SHADER_STAGE_FRAGMENT_BIT)
+ .addSingleBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_SHADER_STAGE_FRAGMENT_BIT)
+ .build(deviceInterface, device));
+
+ const Unique<VkPipelineLayout> pipelineLayoutPerSampleFetchPass(makePipelineLayout(deviceInterface, device, *descriptorSetLayout));
+
+ const deUint32 bufferPerSampleFetchPassSize = 4u * (deUint32)sizeof(tcu::Vec4);
+
+ de::SharedPtr<Buffer> vertexBufferPerSampleFetchPass = de::SharedPtr<Buffer>(new Buffer(deviceInterface, device, allocator, makeBufferCreateInfo(bufferPerSampleFetchPassSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), MemoryRequirement::HostVisible));
+
+ // Create graphics pipelines for per sample texel fetch passes
+ {
+ const Unique<VkShaderModule> vsPerSampleFetchPassModule(createShaderModule(deviceInterface, device, m_context.getBinaryCollection().get("per_sample_fetch_vs"), (VkShaderModuleCreateFlags)0u));
+
+ const VkPipelineShaderStageCreateInfo vsPerSampleFetchPassShaderStageInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineShaderStageCreateFlags)0u, // VkPipelineShaderStageCreateFlags flags;
+ VK_SHADER_STAGE_VERTEX_BIT, // VkShaderStageFlagBits stage;
+ *vsPerSampleFetchPassModule, // VkShaderModule module;
+ "main", // const char* pName;
+ DE_NULL, // const VkSpecializationInfo* pSpecializationInfo;
+ };
+
+ const Unique<VkShaderModule> fsPerSampleFetchPassModule(createShaderModule(deviceInterface, device, m_context.getBinaryCollection().get("per_sample_fetch_fs"), (VkShaderModuleCreateFlags)0u));
+
+ const VkPipelineShaderStageCreateInfo fsPerSampleFetchPassShaderStageInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineShaderStageCreateFlags)0u, // VkPipelineShaderStageCreateFlags flags;
+ VK_SHADER_STAGE_FRAGMENT_BIT, // VkShaderStageFlagBits stage;
+ *fsPerSampleFetchPassModule, // VkShaderModule module;
+ "main", // const char* pName;
+ DE_NULL, // const VkSpecializationInfo* pSpecializationInfo;
+ };
+
+ const VkPipelineShaderStageCreateInfo shaderStageInfosPerSampleFetchPass[] = { vsPerSampleFetchPassShaderStageInfo, fsPerSampleFetchPassShaderStageInfo };
+
+ std::vector<tcu::Vec4> vertices;
+
+ vertices.push_back(tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f));
+ vertices.push_back(tcu::Vec4( 1.0f, -1.0f, 0.0f, 1.0f));
+ vertices.push_back(tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f));
+ vertices.push_back(tcu::Vec4( 1.0f, 1.0f, 0.0f, 1.0f));
+
+ const Allocation& vertexAllocPerSampleFetchPass = vertexBufferPerSampleFetchPass->getAllocation();
+
+ deMemcpy(vertexAllocPerSampleFetchPass.getHostPtr(), dataPointer(vertices), static_cast<std::size_t>(bufferPerSampleFetchPassSize));
+
+ flushMappedMemoryRange(deviceInterface, device, vertexAllocPerSampleFetchPass.getMemory(), vertexAllocPerSampleFetchPass.getOffset(), VK_WHOLE_SIZE);
+
+ const VkVertexInputBindingDescription vertexBindingPerSampleFetchPass =
+ {
+ 0u, // deUint32 binding;
+ sizeof(tcu::Vec4), // deUint32 stride;
+ VK_VERTEX_INPUT_RATE_VERTEX // VkVertexInputRate inputRate;
+ };
+
+ const VkVertexInputAttributeDescription vertexAttribPositionNdc =
+ {
+ 0u, // deUint32 location;
+ 0u, // deUint32 binding;
+ VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format;
+ 0u, // deUint32 offset;
+ };
+
+ const VkPipelineVertexInputStateCreateInfo vertexInputStatePerSampleFetchPass =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineVertexInputStateCreateFlags)0u, // VkPipelineVertexInputStateCreateFlags flags;
+ 1u, // uint32_t vertexBindingDescriptionCount;
+ &vertexBindingPerSampleFetchPass, // const VkVertexInputBindingDescription* pVertexBindingDescriptions;
+ 1u, // uint32_t vertexAttributeDescriptionCount;
+ &vertexAttribPositionNdc, // const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
+ };
+
+ const VkPipelineInputAssemblyStateCreateInfo inputAssemblyStatePerSampleFetchPass =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineInputAssemblyStateCreateFlags)0u, // VkPipelineInputAssemblyStateCreateFlags flags;
+ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, // VkPrimitiveTopology topology;
+ VK_FALSE, // VkBool32 primitiveRestartEnable;
+ };
+
+ const VkPipelineMultisampleStateCreateInfo multisampleStatePerSampleFetchPass =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineMultisampleStateCreateFlags)0u, // VkPipelineMultisampleStateCreateFlags flags;
+ VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits rasterizationSamples;
+ VK_FALSE, // VkBool32 sampleShadingEnable;
+ 0.0f, // float minSampleShading;
+ DE_NULL, // const VkSampleMask* pSampleMask;
+ VK_FALSE, // VkBool32 alphaToCoverageEnable;
+ VK_FALSE, // VkBool32 alphaToOneEnable;
+ };
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ const VkGraphicsPipelineCreateInfo graphicsPipelineInfo =
+ {
+ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineCreateFlags)0u, // VkPipelineCreateFlags flags;
+ 2u, // deUint32 stageCount;
+ shaderStageInfosPerSampleFetchPass, // const VkPipelineShaderStageCreateInfo* pStages;
+ &vertexInputStatePerSampleFetchPass, // const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
+ &inputAssemblyStatePerSampleFetchPass, // const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
+ DE_NULL, // const VkPipelineTessellationStateCreateInfo* pTessellationState;
+ &viewportStateInfo, // const VkPipelineViewportStateCreateInfo* pViewportState;
+ &rasterizationStateInfo, // const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
+ &multisampleStatePerSampleFetchPass, // const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
+ &depthStencilStateInfo, // const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
+ &colorBlendStateInfo, // const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
+ DE_NULL, // const VkPipelineDynamicStateCreateInfo* pDynamicState;
+ *pipelineLayoutPerSampleFetchPass, // VkPipelineLayout layout;
+ *renderPass, // VkRenderPass renderPass;
+ 1u + sampleNdx, // deUint32 subpass;
+ DE_NULL, // VkPipeline basePipelineHandle;
+ 0u, // deInt32 basePipelineIndex;
+ };
+
+ graphicsPipelinesPerSampleFetch[sampleNdx] = makeVkSharedPtr(createGraphicsPipeline(deviceInterface, device, DE_NULL, &graphicsPipelineInfo));
+ }
+ }
+
+ // Create descriptor pool
+ const Unique<VkDescriptorPool> descriptorPool(
+ DescriptorPoolBuilder()
+ .addType(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1u)
+ .addType(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1u)
+ .build(deviceInterface, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u));
+
+ // Create descriptor set
+ const Unique<VkDescriptorSet> descriptorSet(makeDescriptorSet(deviceInterface, device, *descriptorPool, *descriptorSetLayout));
+
+ const VkPhysicalDeviceLimits deviceLimits = getPhysicalDeviceProperties(instance, physicalDevice).limits;
+
+ VkDeviceSize uboOffsetAlignment = sizeof(deInt32) < deviceLimits.minUniformBufferOffsetAlignment ? deviceLimits.minUniformBufferOffsetAlignment : sizeof(deInt32);
+
+ uboOffsetAlignment += (deviceLimits.minUniformBufferOffsetAlignment - uboOffsetAlignment % deviceLimits.minUniformBufferOffsetAlignment) % deviceLimits.minUniformBufferOffsetAlignment;
+
+ const VkBufferCreateInfo bufferSampleIDInfo = makeBufferCreateInfo(uboOffsetAlignment * numSamples, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT);
+ const de::UniquePtr<Buffer> bufferSampleID(new Buffer(deviceInterface, device, allocator, bufferSampleIDInfo, MemoryRequirement::HostVisible));
+
+ std::vector<deUint32> sampleIDsOffsets(numSamples);
+
+ {
+ deInt8* sampleIDs = new deInt8[uboOffsetAlignment * numSamples];
+
+ for (deInt32 sampleNdx = 0u; sampleNdx < static_cast<deInt32>(numSamples); ++sampleNdx)
+ {
+ sampleIDsOffsets[sampleNdx] = static_cast<deUint32>(sampleNdx * uboOffsetAlignment);
+ deInt8* samplePtr = sampleIDs + sampleIDsOffsets[sampleNdx];
+
+ deMemcpy(samplePtr, &sampleNdx, sizeof(deInt32));
+ }
+
+ deMemcpy(bufferSampleID->getAllocation().getHostPtr(), sampleIDs, static_cast<deUint32>(uboOffsetAlignment * numSamples));
+
+ flushMappedMemoryRange(deviceInterface, device, bufferSampleID->getAllocation().getMemory(), bufferSampleID->getAllocation().getOffset(), VK_WHOLE_SIZE);
+
+ delete[] sampleIDs;
+ }
+
+ {
+ const VkDescriptorImageInfo descImageInfo = makeDescriptorImageInfo(DE_NULL, imageViews[0], VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
+ const VkDescriptorBufferInfo descBufferInfo = makeDescriptorBufferInfo(**bufferSampleID, 0u, sizeof(deInt32));
+
+ DescriptorSetUpdateBuilder()
+ .writeSingle(*descriptorSet, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, &descImageInfo)
+ .writeSingle(*descriptorSet, DescriptorSetUpdateBuilder::Location::binding(1u), VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, &descBufferInfo)
+ .update(deviceInterface, device);
+ }
+
+ // Create command buffer for compute and transfer oparations
+ const Unique<VkCommandPool> commandPool(makeCommandPool(deviceInterface, device, queueFamilyIndex));
+ const Unique<VkCommandBuffer> commandBuffer(makeCommandBuffer(deviceInterface, device, *commandPool));
+
+ // Start recording commands
+ beginCommandBuffer(deviceInterface, *commandBuffer);
+
+ {
+ std::vector<VkImageMemoryBarrier> imageOutputAttachmentBarriers(firstSubpassAttachmentsCount + numSamples);
+
+ imageOutputAttachmentBarriers[0] = makeImageMemoryBarrier
+ (
+ 0u,
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+ VK_IMAGE_LAYOUT_UNDEFINED,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ **imageMS,
+ fullImageRange
+ );
+
+ imageOutputAttachmentBarriers[1] = makeImageMemoryBarrier
+ (
+ 0u,
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+ VK_IMAGE_LAYOUT_UNDEFINED,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ **imageRS,
+ fullImageRange
+ );
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ imageOutputAttachmentBarriers[firstSubpassAttachmentsCount + sampleNdx] = makeImageMemoryBarrier
+ (
+ 0u,
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+ VK_IMAGE_LAYOUT_UNDEFINED,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ **imagesPerSampleVec[sampleNdx],
+ fullImageRange
+ );
+ }
+
+ deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL,
+ static_cast<deUint32>(imageOutputAttachmentBarriers.size()), dataPointer(imageOutputAttachmentBarriers));
+ }
+
+ {
+ const VkDeviceSize vertexStartOffset = 0u;
+
+ std::vector<VkClearValue> clearValues(firstSubpassAttachmentsCount + numSamples);
+ for (deUint32 attachmentNdx = 0u; attachmentNdx < firstSubpassAttachmentsCount + numSamples; ++attachmentNdx)
+ {
+ clearValues[attachmentNdx] = makeClearValueColor(tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f));
+ }
+
+ const vk::VkRect2D renderArea =
+ {
+ makeOffset2D(0u, 0u),
+ makeExtent2D(imageMSInfo.extent.width, imageMSInfo.extent.height),
+ };
+
+ // Begin render pass
+ const VkRenderPassBeginInfo renderPassBeginInfo =
+ {
+ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ *renderPass, // VkRenderPass renderPass;
+ *framebuffer, // VkFramebuffer framebuffer;
+ renderArea, // VkRect2D renderArea;
+ static_cast<deUint32>(clearValues.size()), // deUint32 clearValueCount;
+ dataPointer(clearValues), // const VkClearValue* pClearValues;
+ };
+
+ deviceInterface.cmdBeginRenderPass(*commandBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+
+ // Bind graphics pipeline
+ deviceInterface.cmdBindPipeline(*commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *graphicsPipelineMSPass);
+
+ const VkDescriptorSet* descriptorSetMSPass = createMSPassDescSet(m_imageMSParams, descriptorSetLayoutMSPass);
+
+ if (descriptorSetMSPass)
+ {
+ // Bind descriptor set
+ deviceInterface.cmdBindDescriptorSets(*commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipelineLayoutMSPass, 0u, 1u, descriptorSetMSPass, 0u, DE_NULL);
+ }
+
+ // Bind vertex buffer
+ deviceInterface.cmdBindVertexBuffers(*commandBuffer, 0u, 1u, &vertexBuffer->get(), &vertexStartOffset);
+
+ // Perform a draw
+ deviceInterface.cmdDraw(*commandBuffer, vertexDataDesc.verticesCount, 1u, 0u, 0u);
+
+ // Change imageMS layout for input attachment compatibility
+ const VkImageMemoryBarrier imageMSInputAttachmentBarrier = makeImageMemoryBarrier
+ (
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
+ **imageMS,
+ fullImageRange
+ );
+
+ deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &imageMSInputAttachmentBarrier);
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ deviceInterface.cmdNextSubpass(*commandBuffer, VK_SUBPASS_CONTENTS_INLINE);
+
+ // Bind graphics pipeline
+ deviceInterface.cmdBindPipeline(*commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **graphicsPipelinesPerSampleFetch[sampleNdx]);
+
+ // Bind descriptor set
+ deviceInterface.cmdBindDescriptorSets(*commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipelineLayoutPerSampleFetchPass, 0u, 1u, &descriptorSet.get(), 1u, &sampleIDsOffsets[sampleNdx]);
+
+ // Bind vertex buffer
+ deviceInterface.cmdBindVertexBuffers(*commandBuffer, 0u, 1u, &vertexBufferPerSampleFetchPass->get(), &vertexStartOffset);
+
+ // Perform a draw
+ deviceInterface.cmdDraw(*commandBuffer, 4u, 1u, 0u, 0u);
+ }
+
+ // End render pass
+ deviceInterface.cmdEndRenderPass(*commandBuffer);
+ }
+
+ {
+ const VkImageMemoryBarrier imageRSTransferBarrier = makeImageMemoryBarrier
+ (
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+ VK_ACCESS_TRANSFER_READ_BIT,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+ **imageRS,
+ fullImageRange
+ );
+
+ deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &imageRSTransferBarrier);
+ }
+
+ // Copy data from imageRS to buffer
+ const deUint32 imageRSSizeInBytes = getImageSizeInBytes(imageRSInfo.extent, imageRSInfo.arrayLayers, m_imageFormat, imageRSInfo.mipLevels, 1u);
+
+ const VkBufferCreateInfo bufferRSInfo = makeBufferCreateInfo(imageRSSizeInBytes, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
+ const de::UniquePtr<Buffer> bufferRS(new Buffer(deviceInterface, device, allocator, bufferRSInfo, MemoryRequirement::HostVisible));
+
+ {
+ const VkBufferImageCopy bufferImageCopy =
+ {
+ 0u, // VkDeviceSize bufferOffset;
+ 0u, // deUint32 bufferRowLength;
+ 0u, // deUint32 bufferImageHeight;
+ makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, imageRSInfo.arrayLayers), // VkImageSubresourceLayers imageSubresource;
+ makeOffset3D(0, 0, 0), // VkOffset3D imageOffset;
+ imageRSInfo.extent, // VkExtent3D imageExtent;
+ };
+
+ deviceInterface.cmdCopyImageToBuffer(*commandBuffer, **imageRS, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, bufferRS->get(), 1u, &bufferImageCopy);
+ }
+
+ {
+ const VkBufferMemoryBarrier bufferRSHostReadBarrier = makeBufferMemoryBarrier
+ (
+ VK_ACCESS_TRANSFER_WRITE_BIT,
+ VK_ACCESS_HOST_READ_BIT,
+ bufferRS->get(),
+ 0u,
+ imageRSSizeInBytes
+ );
+
+ deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &bufferRSHostReadBarrier, 0u, DE_NULL);
+ }
+
+ // Copy data from per sample images to buffers
+ std::vector<VkImageMemoryBarrier> imagesPerSampleTransferBarriers(numSamples);
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ imagesPerSampleTransferBarriers[sampleNdx] = makeImageMemoryBarrier
+ (
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+ VK_ACCESS_TRANSFER_READ_BIT,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+ VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+ **imagesPerSampleVec[sampleNdx],
+ fullImageRange
+ );
+ }
+
+ deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL,
+ static_cast<deUint32>(imagesPerSampleTransferBarriers.size()), dataPointer(imagesPerSampleTransferBarriers));
+
+ std::vector<de::SharedPtr<Buffer> > buffersPerSample(numSamples);
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ buffersPerSample[sampleNdx] = de::SharedPtr<Buffer>(new Buffer(deviceInterface, device, allocator, bufferRSInfo, MemoryRequirement::HostVisible));
+
+ const VkBufferImageCopy bufferImageCopy =
+ {
+ 0u, // VkDeviceSize bufferOffset;
+ 0u, // deUint32 bufferRowLength;
+ 0u, // deUint32 bufferImageHeight;
+ makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, imageRSInfo.arrayLayers), // VkImageSubresourceLayers imageSubresource;
+ makeOffset3D(0, 0, 0), // VkOffset3D imageOffset;
+ imageRSInfo.extent, // VkExtent3D imageExtent;
+ };
+
+ deviceInterface.cmdCopyImageToBuffer(*commandBuffer, **imagesPerSampleVec[sampleNdx], VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, **buffersPerSample[sampleNdx], 1u, &bufferImageCopy);
+ }
+
+ std::vector<VkBufferMemoryBarrier> buffersPerSampleHostReadBarriers(numSamples);
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ buffersPerSampleHostReadBarriers[sampleNdx] = makeBufferMemoryBarrier
+ (
+ VK_ACCESS_TRANSFER_WRITE_BIT,
+ VK_ACCESS_HOST_READ_BIT,
+ **buffersPerSample[sampleNdx],
+ 0u,
+ imageRSSizeInBytes
+ );
+ }
+
+ deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL,
+ static_cast<deUint32>(buffersPerSampleHostReadBarriers.size()), dataPointer(buffersPerSampleHostReadBarriers), 0u, DE_NULL);
+
+ // End recording commands
+ VK_CHECK(deviceInterface.endCommandBuffer(*commandBuffer));
+
+ // Submit commands for execution and wait for completion
+ submitCommandsAndWait(deviceInterface, device, queue, *commandBuffer);
+
+ // Retrieve data from bufferRS to host memory
+ const Allocation& bufferRSAlloc = bufferRS->getAllocation();
+
+ invalidateMappedMemoryRange(deviceInterface, device, bufferRSAlloc.getMemory(), bufferRSAlloc.getOffset(), VK_WHOLE_SIZE);
+
+ const tcu::ConstPixelBufferAccess bufferRSData (m_imageFormat,
+ imageRSInfo.extent.width,
+ imageRSInfo.extent.height,
+ imageRSInfo.extent.depth * imageRSInfo.arrayLayers,
+ bufferRSAlloc.getHostPtr());
+
+ std::stringstream resolveName;
+ resolveName << "Resolve image " << getImageTypeName(m_imageType) << "_" << bufferRSData.getWidth() << "_" << bufferRSData.getHeight() << "_" << bufferRSData.getDepth() << std::endl;
+
+ m_context.getTestContext().getLog()
+ << tcu::TestLog::Section(resolveName.str(), resolveName.str())
+ << tcu::LogImage("resolve", "", bufferRSData)
+ << tcu::TestLog::EndSection;
+
+ std::vector<tcu::ConstPixelBufferAccess> buffersPerSampleData(numSamples);
+
+ // Retrieve data from per sample buffers to host memory
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ const Allocation& bufferAlloc = buffersPerSample[sampleNdx]->getAllocation();
+
+ invalidateMappedMemoryRange(deviceInterface, device, bufferAlloc.getMemory(), bufferAlloc.getOffset(), VK_WHOLE_SIZE);
+
+ buffersPerSampleData[sampleNdx] = tcu::ConstPixelBufferAccess
+ (
+ m_imageFormat,
+ imageRSInfo.extent.width,
+ imageRSInfo.extent.height,
+ imageRSInfo.extent.depth * imageRSInfo.arrayLayers,
+ bufferAlloc.getHostPtr()
+ );
+
+ std::stringstream sampleName;
+ sampleName << "Sample " << sampleNdx << " image" << std::endl;
+
+ m_context.getTestContext().getLog()
+ << tcu::TestLog::Section(sampleName.str(), sampleName.str())
+ << tcu::LogImage("sample", "", buffersPerSampleData[sampleNdx])
+ << tcu::TestLog::EndSection;
+ }
+
+ return verifyImageData(imageMSInfo, imageRSInfo, buffersPerSampleData, bufferRSData);
+}
+
+} // multisample
+} // pipeline
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.hpp
new file mode 100644
index 0000000..158b80b
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolveAndPerSampleFetch.hpp
@@ -0,0 +1,77 @@
+#ifndef _VKTPIPELINEMULTISAMPLEBASERESOLVEANDPERSAMPLEFETCH_HPP
+#define _VKTPIPELINEMULTISAMPLEBASERESOLVEANDPERSAMPLEFETCH_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file vktPipelineMultisampleBaseResolveAndPerSampleFetch.hpp
+ * \brief Base class for tests that check results of multisample resolve
+ * and/or values of individual samples
+ *//*--------------------------------------------------------------------*/
+
+#include "vktPipelineMultisampleBase.hpp"
+#include "vktTestCase.hpp"
+#include "tcuVector.hpp"
+
+namespace vkt
+{
+namespace pipeline
+{
+namespace multisample
+{
+
+class MSCaseBaseResolveAndPerSampleFetch : public MultisampleCaseBase
+{
+public:
+ MSCaseBaseResolveAndPerSampleFetch (tcu::TestContext& testCtx,
+ const std::string& name,
+ const ImageMSParams& imageMSParams)
+ : MultisampleCaseBase(testCtx, name, imageMSParams) {}
+
+ void initPrograms (vk::SourceCollections& programCollection) const;
+};
+
+class MSInstanceBaseResolveAndPerSampleFetch : public MultisampleInstanceBase
+{
+public:
+ MSInstanceBaseResolveAndPerSampleFetch (Context& context,
+ const ImageMSParams& imageMSParams)
+ : MultisampleInstanceBase(context, imageMSParams) {}
+
+protected:
+
+ tcu::TestStatus iterate (void);
+
+ virtual vk::VkPipelineMultisampleStateCreateInfo getMSStateCreateInfo (const ImageMSParams& imageMSParams) const;
+
+ virtual const vk::VkDescriptorSetLayout* createMSPassDescSetLayout (const ImageMSParams& imageMSParams);
+
+ virtual const vk::VkDescriptorSet* createMSPassDescSet (const ImageMSParams& imageMSParams,
+ const vk::VkDescriptorSetLayout* descSetLayout);
+
+ virtual tcu::TestStatus verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const = 0;
+};
+
+} // multisample
+} // pipeline
+} // vkt
+
+#endif // _VKTPIPELINEMULTISAMPLEBASERESOLVEANDPERSAMPLEFETCH_HPP
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.cpp
index 63a1bb1..7a6174b 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.cpp
@@ -22,11 +22,11 @@
*//*--------------------------------------------------------------------*/
#include "vktPipelineMultisampleInterpolationTests.hpp"
+#include "vktPipelineMultisampleBaseResolve.hpp"
#include "vktPipelineMultisampleTestsUtil.hpp"
#include "vktPipelineMakeUtil.hpp"
#include "vkQueryUtil.hpp"
-
-#include <set>
+#include <vector>
namespace vkt
{
@@ -37,745 +37,90 @@
using namespace vk;
-struct ImageMSParams
+struct VertexDataNdc
{
- ImageMSParams(const VkSampleCountFlagBits samples, const tcu::UVec3& size) : numSamples(samples), imageSize(size) {}
+ VertexDataNdc (const tcu::Vec4& posNdc) : positionNdc(posNdc) {}
- VkSampleCountFlagBits numSamples;
- tcu::UVec3 imageSize;
+ tcu::Vec4 positionNdc;
};
-class MSInterpolationCaseBase : public TestCase
+struct VertexDataNdcScreen
{
-public:
- MSInterpolationCaseBase (tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : TestCase(testCtx, name, "")
- , m_imageMSParams(imageMSParams)
- {}
+ VertexDataNdcScreen (const tcu::Vec4& posNdc, const tcu::Vec2& posScreen) : positionNdc(posNdc), positionScreen(posScreen) {}
-protected:
- const ImageMSParams m_imageMSParams;
+ tcu::Vec4 positionNdc;
+ tcu::Vec2 positionScreen;
};
-typedef MSInterpolationCaseBase* (*MSInterpolationCaseFuncPtr)(tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams);
-
-class MSInterpolationInstanceBase : public TestInstance
+struct VertexDataNdcBarycentric
{
-public:
- MSInterpolationInstanceBase (Context& context,
- const ImageMSParams& imageMSParams)
- : TestInstance (context)
- , m_imageMSParams (imageMSParams)
- , m_imageType (IMAGE_TYPE_2D)
- , m_imageFormat (tcu::TextureFormat(tcu::TextureFormat::RG, tcu::TextureFormat::UNORM_INT8))
- {}
+ VertexDataNdcBarycentric (const tcu::Vec4& posNdc, const tcu::Vec3& barCoord) : positionNdc(posNdc), barycentricCoord(barCoord) {}
- tcu::TestStatus iterate (void);
-
-protected:
-
- typedef std::vector<VkVertexInputAttributeDescription> VertexAttribDescVec;
-
- struct VertexDataDesc
- {
- VkPrimitiveTopology primitiveTopology;
- deUint32 verticesCount;
- deUint32 dataStride;
- VkDeviceSize dataSize;
- VertexAttribDescVec vertexAttribDescVec;
- };
-
- void validateImageSize (const InstanceInterface& instance,
- const VkPhysicalDevice physicalDevice,
- const ImageType imageType,
- const tcu::UVec3& imageSize) const;
-
- void validateImageFeatureFlags (const InstanceInterface& instance,
- const VkPhysicalDevice physicalDevice,
- const VkFormat format,
- const VkFormatFeatureFlags featureFlags) const;
-
- void validateImageInfo (const InstanceInterface& instance,
- const VkPhysicalDevice physicalDevice,
- const VkImageCreateInfo& imageInfo) const;
-
- virtual VertexDataDesc getVertexDataDescripton (void) const = 0;
-
- virtual void uploadVertexData (const Allocation& vertexBufferAllocation,
- const VertexDataDesc& vertexDataDescripton) const = 0;
-
- virtual tcu::TestStatus verifyResolvedImage (const tcu::ConstPixelBufferAccess& imageData) const = 0;
-protected:
- const ImageMSParams m_imageMSParams;
- const ImageType m_imageType;
- const tcu::TextureFormat m_imageFormat;
+ tcu::Vec4 positionNdc;
+ tcu::Vec3 barycentricCoord;
};
-void MSInterpolationInstanceBase::validateImageSize (const InstanceInterface& instance,
- const VkPhysicalDevice physicalDevice,
- const ImageType imageType,
- const tcu::UVec3& imageSize) const
+bool checkForError (const vk::VkImageCreateInfo& imageRSInfo, const tcu::ConstPixelBufferAccess& dataRS, const deUint32 errorCompNdx)
{
- const VkPhysicalDeviceProperties deviceProperties = getPhysicalDeviceProperties(instance, physicalDevice);
-
- bool isImageSizeValid = true;
-
- switch (imageType)
+ for (deUint32 z = 0u; z < imageRSInfo.extent.depth; ++z)
+ for (deUint32 y = 0u; y < imageRSInfo.extent.height; ++y)
+ for (deUint32 x = 0u; x < imageRSInfo.extent.width; ++x)
{
- case IMAGE_TYPE_1D:
- isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension1D;
- break;
- case IMAGE_TYPE_1D_ARRAY:
- isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension1D &&
- imageSize.z() <= deviceProperties.limits.maxImageArrayLayers;
- break;
- case IMAGE_TYPE_2D:
- isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension2D &&
- imageSize.y() <= deviceProperties.limits.maxImageDimension2D;
- break;
- case IMAGE_TYPE_2D_ARRAY:
- isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension2D &&
- imageSize.y() <= deviceProperties.limits.maxImageDimension2D &&
- imageSize.z() <= deviceProperties.limits.maxImageArrayLayers;
- break;
- case IMAGE_TYPE_CUBE:
- isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimensionCube &&
- imageSize.y() <= deviceProperties.limits.maxImageDimensionCube;
- break;
- case IMAGE_TYPE_CUBE_ARRAY:
- isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimensionCube &&
- imageSize.y() <= deviceProperties.limits.maxImageDimensionCube &&
- imageSize.z() <= deviceProperties.limits.maxImageArrayLayers;
- break;
- case IMAGE_TYPE_3D:
- isImageSizeValid = imageSize.x() <= deviceProperties.limits.maxImageDimension3D &&
- imageSize.y() <= deviceProperties.limits.maxImageDimension3D &&
- imageSize.z() <= deviceProperties.limits.maxImageDimension3D;
- break;
- default:
- DE_FATAL("Unknown image type");
+ const deUint32 errorComponent = dataRS.getPixelUint(x, y, z)[errorCompNdx];
+
+ if (errorComponent > 0)
+ return true;
}
- if (!isImageSizeValid)
- {
- std::ostringstream notSupportedStream;
-
- notSupportedStream << "Image type (" << getImageTypeName(imageType) << ") with size (" << imageSize.x() << ", " << imageSize.y() << ", " << imageSize.z() << ") not supported by device" << std::endl;
-
- const std::string notSupportedString = notSupportedStream.str();
-
- TCU_THROW(NotSupportedError, notSupportedString.c_str());
- }
+ return false;
}
-void MSInterpolationInstanceBase::validateImageFeatureFlags (const InstanceInterface& instance,
- const VkPhysicalDevice physicalDevice,
- const VkFormat format,
- const VkFormatFeatureFlags featureFlags) const
-{
- const VkFormatProperties formatProperties = getPhysicalDeviceFormatProperties(instance, physicalDevice, format);
-
- if ((formatProperties.optimalTilingFeatures & featureFlags) != featureFlags)
- {
- std::ostringstream notSupportedStream;
-
- notSupportedStream << "Device does not support image format " << format << " for feature flags " << featureFlags << std::endl;
-
- const std::string notSupportedString = notSupportedStream.str();
-
- TCU_THROW(NotSupportedError, notSupportedString.c_str());
- }
-}
-
-void MSInterpolationInstanceBase::validateImageInfo (const InstanceInterface& instance,
- const VkPhysicalDevice physicalDevice,
- const VkImageCreateInfo& imageInfo) const
-{
- VkImageFormatProperties imageFormatProps;
- instance.getPhysicalDeviceImageFormatProperties(physicalDevice, imageInfo.format, imageInfo.imageType, imageInfo.tiling, imageInfo.usage, imageInfo.flags, &imageFormatProps);
-
- if (imageFormatProps.maxExtent.width < imageInfo.extent.width ||
- imageFormatProps.maxExtent.height < imageInfo.extent.height ||
- imageFormatProps.maxExtent.depth < imageInfo.extent.depth)
- {
- std::ostringstream notSupportedStream;
-
- notSupportedStream << "Image extent ("
- << imageInfo.extent.width << ", "
- << imageInfo.extent.height << ", "
- << imageInfo.extent.depth
- << ") exceeds allowed maximum ("
- << imageFormatProps.maxExtent.width << ", "
- << imageFormatProps.maxExtent.height << ", "
- << imageFormatProps.maxExtent.depth
- << ")"
- << std::endl;
-
- const std::string notSupportedString = notSupportedStream.str();
-
- TCU_THROW(NotSupportedError, notSupportedString.c_str());
- }
-
- if (imageFormatProps.maxArrayLayers < imageInfo.arrayLayers)
- {
- std::ostringstream notSupportedStream;
-
- notSupportedStream << "Image layers count of " << imageInfo.arrayLayers << " exceeds allowed maximum which is " << imageFormatProps.maxArrayLayers << std::endl;
-
- const std::string notSupportedString = notSupportedStream.str();
-
- TCU_THROW(NotSupportedError, notSupportedString.c_str());
- }
-
- if (!(imageFormatProps.sampleCounts & imageInfo.samples))
- {
- std::ostringstream notSupportedStream;
-
- notSupportedStream << "Samples count of " << imageInfo.samples << " not supported for image" << std::endl;
-
- const std::string notSupportedString = notSupportedStream.str();
-
- TCU_THROW(NotSupportedError, notSupportedString.c_str());
- }
-}
-
-tcu::TestStatus MSInterpolationInstanceBase::iterate (void)
-{
- const InstanceInterface& instance = m_context.getInstanceInterface();
- const DeviceInterface& deviceInterface = m_context.getDeviceInterface();
- const VkDevice device = m_context.getDevice();
- const VkPhysicalDevice physicalDevice = m_context.getPhysicalDevice();
- Allocator& allocator = m_context.getDefaultAllocator();
- const VkQueue queue = m_context.getUniversalQueue();
- const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex();
-
- VkImageCreateInfo imageMSInfo;
- VkImageCreateInfo imageRSInfo;
-
- // Check if image size does not exceed device limits
- validateImageSize(instance, physicalDevice, m_imageType, m_imageMSParams.imageSize);
-
- // Check if device supports image format as color attachment
- validateImageFeatureFlags(instance, physicalDevice, mapTextureFormat(m_imageFormat), VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT);
-
- imageMSInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
- imageMSInfo.pNext = DE_NULL;
- imageMSInfo.flags = 0u;
- imageMSInfo.imageType = mapImageType(m_imageType);
- imageMSInfo.format = mapTextureFormat(m_imageFormat);
- imageMSInfo.extent = makeExtent3D(getLayerSize(m_imageType, m_imageMSParams.imageSize));
- imageMSInfo.arrayLayers = getNumLayers(m_imageType, m_imageMSParams.imageSize);
- imageMSInfo.mipLevels = 1u;
- imageMSInfo.samples = m_imageMSParams.numSamples;
- imageMSInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
- imageMSInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
- imageMSInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
- imageMSInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
- imageMSInfo.queueFamilyIndexCount = 0u;
- imageMSInfo.pQueueFamilyIndices = DE_NULL;
-
- if (m_imageType == IMAGE_TYPE_CUBE || m_imageType == IMAGE_TYPE_CUBE_ARRAY)
- {
- imageMSInfo.flags |= VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
- }
-
- validateImageInfo(instance, physicalDevice, imageMSInfo);
-
- const de::UniquePtr<Image> imageMS(new Image(deviceInterface, device, allocator, imageMSInfo, MemoryRequirement::Any));
-
- imageRSInfo = imageMSInfo;
- imageRSInfo.samples = VK_SAMPLE_COUNT_1_BIT;
-
- validateImageInfo(instance, physicalDevice, imageRSInfo);
-
- const de::UniquePtr<Image> imageRS(new Image(deviceInterface, device, allocator, imageRSInfo, MemoryRequirement::Any));
-
- // Create render pass
- const VkAttachmentDescription attachmentMSDesc =
- {
- (VkAttachmentDescriptionFlags)0u, // VkAttachmentDescriptionFlags flags;
- imageMSInfo.format, // VkFormat format;
- imageMSInfo.samples, // VkSampleCountFlagBits samples;
- VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp;
- VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp;
- VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp;
- VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp;
- VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout initialLayout;
- VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout;
- };
-
- const VkAttachmentDescription attachmentRSDesc =
- {
- (VkAttachmentDescriptionFlags)0u, // VkAttachmentDescriptionFlags flags;
- imageRSInfo.format, // VkFormat format;
- imageRSInfo.samples, // VkSampleCountFlagBits samples;
- VK_ATTACHMENT_LOAD_OP_CLEAR, // VkAttachmentLoadOp loadOp;
- VK_ATTACHMENT_STORE_OP_STORE, // VkAttachmentStoreOp storeOp;
- VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp;
- VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp;
- VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, // VkImageLayout initialLayout;
- VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout finalLayout;
- };
-
- const VkAttachmentDescription attachments[] = { attachmentMSDesc, attachmentRSDesc };
-
- const VkAttachmentReference attachmentMSRef =
- {
- 0u, // deUint32 attachment;
- VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout layout;
- };
-
- const VkAttachmentReference attachmentRSRef =
- {
- 1u, // deUint32 attachment;
- VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL // VkImageLayout layout;
- };
-
- const VkAttachmentReference* resolveAttachment = m_imageMSParams.numSamples == VK_SAMPLE_COUNT_1_BIT ? DE_NULL : &attachmentRSRef;
-
- const VkSubpassDescription subpassDescription =
- {
- (VkSubpassDescriptionFlags)0u, // VkSubpassDescriptionFlags flags;
- VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint;
- 0u, // deUint32 inputAttachmentCount;
- DE_NULL, // const VkAttachmentReference* pInputAttachments;
- 1u, // deUint32 colorAttachmentCount;
- &attachmentMSRef, // const VkAttachmentReference* pColorAttachments;
- resolveAttachment, // const VkAttachmentReference* pResolveAttachments;
- DE_NULL, // const VkAttachmentReference* pDepthStencilAttachment;
- 0u, // deUint32 preserveAttachmentCount;
- DE_NULL // const deUint32* pPreserveAttachments;
- };
-
- const VkRenderPassCreateInfo renderPassInfo =
- {
- VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkRenderPassCreateFlags)0u, // VkRenderPassCreateFlags flags;
- 2u, // deUint32 attachmentCount;
- attachments, // const VkAttachmentDescription* pAttachments;
- 1u, // deUint32 subpassCount;
- &subpassDescription, // const VkSubpassDescription* pSubpasses;
- 0u, // deUint32 dependencyCount;
- DE_NULL // const VkSubpassDependency* pDependencies;
- };
-
- const Unique<VkRenderPass> renderPass(createRenderPass(deviceInterface, device, &renderPassInfo));
-
- const VkImageSubresourceRange fullImageRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, imageMSInfo.mipLevels, 0u, imageMSInfo.arrayLayers);
-
- // Create color attachments image views
- const Unique<VkImageView> imageMSView(makeImageView(deviceInterface, device, **imageMS, mapImageViewType(m_imageType), imageMSInfo.format, fullImageRange));
- const Unique<VkImageView> imageRSView(makeImageView(deviceInterface, device, **imageRS, mapImageViewType(m_imageType), imageMSInfo.format, fullImageRange));
-
- const VkImageView attachmentsViews[] = { *imageMSView, *imageRSView };
-
- // Create framebuffer
- const VkFramebufferCreateInfo framebufferInfo =
- {
- VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkFramebufferCreateFlags)0u, // VkFramebufferCreateFlags flags;
- *renderPass, // VkRenderPass renderPass;
- 2u, // uint32_t attachmentCount;
- attachmentsViews, // const VkImageView* pAttachments;
- imageMSInfo.extent.width, // uint32_t width;
- imageMSInfo.extent.height, // uint32_t height;
- imageMSInfo.arrayLayers, // uint32_t layers;
- };
-
- const Unique<VkFramebuffer> framebuffer(createFramebuffer(deviceInterface, device, &framebufferInfo));
-
- // Create pipeline layout
- const VkPipelineLayoutCreateInfo pipelineLayoutParams =
- {
- VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineLayoutCreateFlags)0u, // VkPipelineLayoutCreateFlags flags;
- 0u, // deUint32 setLayoutCount;
- DE_NULL, // const VkDescriptorSetLayout* pSetLayouts;
- 0u, // deUint32 pushConstantRangeCount;
- DE_NULL, // const VkPushConstantRange* pPushConstantRanges;
- };
-
- const Unique<VkPipelineLayout> pipelineLayout(createPipelineLayout(deviceInterface, device, &pipelineLayoutParams));
-
- // Create vertex attributes data
- const VertexDataDesc vertexDataDesc = getVertexDataDescripton();
-
- de::SharedPtr<Buffer> vertexBuffer = de::SharedPtr<Buffer>(new Buffer(deviceInterface, device, allocator, makeBufferCreateInfo(vertexDataDesc.dataSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), MemoryRequirement::HostVisible));
- const Allocation& vertexBufferAllocation = vertexBuffer->getAllocation();
-
- uploadVertexData(vertexBufferAllocation, vertexDataDesc);
-
- flushMappedMemoryRange(deviceInterface, device, vertexBufferAllocation.getMemory(), vertexBufferAllocation.getOffset(), vertexDataDesc.dataSize);
-
- const VkVertexInputBindingDescription vertexBinding =
- {
- 0u, // deUint32 binding;
- vertexDataDesc.dataStride, // deUint32 stride;
- VK_VERTEX_INPUT_RATE_VERTEX // VkVertexInputRate inputRate;
- };
-
- const VkPipelineVertexInputStateCreateInfo vertexInputStateInfo =
- {
- VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineVertexInputStateCreateFlags)0u, // VkPipelineVertexInputStateCreateFlags flags;
- 1u, // uint32_t vertexBindingDescriptionCount;
- &vertexBinding, // const VkVertexInputBindingDescription* pVertexBindingDescriptions;
- static_cast<deUint32>(vertexDataDesc.vertexAttribDescVec.size()), // uint32_t vertexAttributeDescriptionCount;
- dataPointer(vertexDataDesc.vertexAttribDescVec), // const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
- };
-
- const VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateInfo =
- {
- VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineInputAssemblyStateCreateFlags)0u, // VkPipelineInputAssemblyStateCreateFlags flags;
- vertexDataDesc.primitiveTopology, // VkPrimitiveTopology topology;
- VK_FALSE, // VkBool32 primitiveRestartEnable;
- };
-
- const VkViewport viewport =
- {
- 0.0f, 0.0f,
- static_cast<float>(imageMSInfo.extent.width), static_cast<float>(imageMSInfo.extent.height),
- 0.0f, 1.0f
- };
-
- const VkRect2D scissor =
- {
- makeOffset2D(0, 0),
- makeExtent2D(imageMSInfo.extent.width, imageMSInfo.extent.height),
- };
-
- const VkPipelineViewportStateCreateInfo viewportStateInfo =
- {
- VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineViewportStateCreateFlags)0u, // VkPipelineViewportStateCreateFlags flags;
- 1u, // uint32_t viewportCount;
- &viewport, // const VkViewport* pViewports;
- 1u, // uint32_t scissorCount;
- &scissor, // const VkRect2D* pScissors;
- };
-
- const VkPipelineRasterizationStateCreateInfo rasterizationStateInfo =
- {
- VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineRasterizationStateCreateFlags)0u, // VkPipelineRasterizationStateCreateFlags flags;
- VK_FALSE, // VkBool32 depthClampEnable;
- VK_FALSE, // VkBool32 rasterizerDiscardEnable;
- VK_POLYGON_MODE_FILL, // VkPolygonMode polygonMode;
- VK_CULL_MODE_NONE, // VkCullModeFlags cullMode;
- VK_FRONT_FACE_COUNTER_CLOCKWISE, // VkFrontFace frontFace;
- VK_FALSE, // VkBool32 depthBiasEnable;
- 0.0f, // float depthBiasConstantFactor;
- 0.0f, // float depthBiasClamp;
- 0.0f, // float depthBiasSlopeFactor;
- 1.0f, // float lineWidth;
- };
-
- const VkPipelineMultisampleStateCreateInfo multisampleStateInfo =
- {
- VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineMultisampleStateCreateFlags)0u, // VkPipelineMultisampleStateCreateFlags flags;
- imageMSInfo.samples, // VkSampleCountFlagBits rasterizationSamples;
- VK_TRUE, // VkBool32 sampleShadingEnable;
- 1.0f, // float minSampleShading;
- DE_NULL, // const VkSampleMask* pSampleMask;
- VK_FALSE, // VkBool32 alphaToCoverageEnable;
- VK_FALSE, // VkBool32 alphaToOneEnable;
- };
-
- const VkStencilOpState stencilOpState = makeStencilOpState
- (
- VK_STENCIL_OP_KEEP, // stencil fail
- VK_STENCIL_OP_KEEP, // depth & stencil pass
- VK_STENCIL_OP_KEEP, // depth only fail
- VK_COMPARE_OP_ALWAYS, // compare op
- 0u, // compare mask
- 0u, // write mask
- 0u // reference
- );
-
- const VkPipelineDepthStencilStateCreateInfo depthStencilStateInfo =
- {
- VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineDepthStencilStateCreateFlags)0u, // VkPipelineDepthStencilStateCreateFlags flags;
- VK_FALSE, // VkBool32 depthTestEnable;
- VK_FALSE, // VkBool32 depthWriteEnable;
- VK_COMPARE_OP_LESS, // VkCompareOp depthCompareOp;
- VK_FALSE, // VkBool32 depthBoundsTestEnable;
- VK_FALSE, // VkBool32 stencilTestEnable;
- stencilOpState, // VkStencilOpState front;
- stencilOpState, // VkStencilOpState back;
- 0.0f, // float minDepthBounds;
- 1.0f, // float maxDepthBounds;
- };
-
- const VkColorComponentFlags colorComponentsAll = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT;
-
- const VkPipelineColorBlendAttachmentState colorBlendAttachmentState =
- {
- VK_FALSE, // VkBool32 blendEnable;
- VK_BLEND_FACTOR_SRC_ALPHA, // VkBlendFactor srcColorBlendFactor;
- VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, // VkBlendFactor dstColorBlendFactor;
- VK_BLEND_OP_ADD, // VkBlendOp colorBlendOp;
- VK_BLEND_FACTOR_SRC_ALPHA, // VkBlendFactor srcAlphaBlendFactor;
- VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, // VkBlendFactor dstAlphaBlendFactor;
- VK_BLEND_OP_ADD, // VkBlendOp alphaBlendOp;
- colorComponentsAll, // VkColorComponentFlags colorWriteMask;
- };
-
- const VkPipelineColorBlendStateCreateInfo colorBlendStateInfo =
- {
- VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineColorBlendStateCreateFlags)0u, // VkPipelineColorBlendStateCreateFlags flags;
- VK_FALSE, // VkBool32 logicOpEnable;
- VK_LOGIC_OP_COPY, // VkLogicOp logicOp;
- 1u, // deUint32 attachmentCount;
- &colorBlendAttachmentState, // const VkPipelineColorBlendAttachmentState* pAttachments;
- { 0.0f, 0.0f, 0.0f, 0.0f }, // float blendConstants[4];
- };
-
- const Unique<VkShaderModule> vsModule(createShaderModule(deviceInterface, device, m_context.getBinaryCollection().get("vertex_shader"), (VkShaderModuleCreateFlags)0));
-
- const VkPipelineShaderStageCreateInfo vsShaderStageInfo =
- {
- VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineShaderStageCreateFlags)0u, // VkPipelineShaderStageCreateFlags flags;
- VK_SHADER_STAGE_VERTEX_BIT, // VkShaderStageFlagBits stage;
- *vsModule, // VkShaderModule module;
- "main", // const char* pName;
- DE_NULL, // const VkSpecializationInfo* pSpecializationInfo;
- };
-
- const Unique<VkShaderModule> fsModule(createShaderModule(deviceInterface, device, m_context.getBinaryCollection().get("fragment_shader"), (VkShaderModuleCreateFlags)0));
-
- const VkPipelineShaderStageCreateInfo fsShaderStageInfo =
- {
- VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineShaderStageCreateFlags)0u, // VkPipelineShaderStageCreateFlags flags;
- VK_SHADER_STAGE_FRAGMENT_BIT, // VkShaderStageFlagBits stage;
- *fsModule, // VkShaderModule module;
- "main", // const char* pName;
- DE_NULL, // const VkSpecializationInfo* pSpecializationInfo;
- };
-
- const VkPipelineShaderStageCreateInfo shaderStageInfos[] = { vsShaderStageInfo, fsShaderStageInfo };
-
- const VkGraphicsPipelineCreateInfo graphicsPipelineInfo =
- {
- VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- (VkPipelineCreateFlags)0, // VkPipelineCreateFlags flags;
- 2u, // deUint32 stageCount;
- shaderStageInfos, // const VkPipelineShaderStageCreateInfo* pStages;
- &vertexInputStateInfo, // const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
- &inputAssemblyStateInfo, // const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
- DE_NULL, // const VkPipelineTessellationStateCreateInfo* pTessellationState;
- &viewportStateInfo, // const VkPipelineViewportStateCreateInfo* pViewportState;
- &rasterizationStateInfo, // const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
- &multisampleStateInfo, // const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
- &depthStencilStateInfo, // const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
- &colorBlendStateInfo, // const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
- DE_NULL, // const VkPipelineDynamicStateCreateInfo* pDynamicState;
- *pipelineLayout, // VkPipelineLayout layout;
- *renderPass, // VkRenderPass renderPass;
- 0u, // deUint32 subpass;
- DE_NULL, // VkPipeline basePipelineHandle;
- 0u, // deInt32 basePipelineIndex;
- };
-
- // Create graphics pipeline
- const Unique<VkPipeline> graphicsPipeline(createGraphicsPipeline(deviceInterface, device, DE_NULL, &graphicsPipelineInfo));
-
- // Create command buffer for compute and transfer oparations
- const Unique<VkCommandPool> commandPool(makeCommandPool(deviceInterface, device, queueFamilyIndex));
- const Unique<VkCommandBuffer> commandBuffer(makeCommandBuffer(deviceInterface, device, *commandPool));
-
- // Start recording commands
- beginCommandBuffer(deviceInterface, *commandBuffer);
-
- {
- VkImageMemoryBarrier imageOutputAttachmentBarriers[2];
-
- imageOutputAttachmentBarriers[0] = makeImageMemoryBarrier
- (
- 0u,
- VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
- VK_IMAGE_LAYOUT_UNDEFINED,
- VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
- **imageMS,
- fullImageRange
- );
-
- imageOutputAttachmentBarriers[1] = makeImageMemoryBarrier
- (
- 0u,
- VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
- VK_IMAGE_LAYOUT_UNDEFINED,
- VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
- **imageRS,
- fullImageRange
- );
-
- deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 2u, imageOutputAttachmentBarriers);
- }
-
- {
- const VkDeviceSize vertexStartOffset = 0u;
-
- std::vector<VkClearValue> clearValues;
- clearValues.push_back(makeClearValueColor(tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f)));
- clearValues.push_back(makeClearValueColor(tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f)));
-
- const vk::VkRect2D renderArea =
- {
- makeOffset2D(0u, 0u),
- makeExtent2D(imageMSInfo.extent.width, imageMSInfo.extent.height),
- };
-
- // Begin render pass
- const VkRenderPassBeginInfo renderPassBeginInfo =
- {
- VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType;
- DE_NULL, // const void* pNext;
- *renderPass, // VkRenderPass renderPass;
- *framebuffer, // VkFramebuffer framebuffer;
- renderArea, // VkRect2D renderArea;
- static_cast<deUint32>(clearValues.size()), // deUint32 clearValueCount;
- &clearValues[0], // const VkClearValue* pClearValues;
- };
-
- deviceInterface.cmdBeginRenderPass(*commandBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
-
- // Bind graphics pipeline
- deviceInterface.cmdBindPipeline(*commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *graphicsPipeline);
-
- // Bind vertex buffer
- deviceInterface.cmdBindVertexBuffers(*commandBuffer, 0u, 1u, &vertexBuffer->get(), &vertexStartOffset);
-
- // Draw full screen quad
- deviceInterface.cmdDraw(*commandBuffer, vertexDataDesc.verticesCount, 1u, 0u, 0u);
-
- // End render pass
- deviceInterface.cmdEndRenderPass(*commandBuffer);
- }
-
- const VkImage sourceImage = m_imageMSParams.numSamples == VK_SAMPLE_COUNT_1_BIT ? **imageMS : **imageRS;
-
- {
- const VkImageMemoryBarrier imageTransferSrcBarrier = makeImageMemoryBarrier
- (
- VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
- VK_ACCESS_TRANSFER_READ_BIT,
- VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
- VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
- sourceImage,
- fullImageRange
- );
-
- deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &imageTransferSrcBarrier);
- }
-
- // Copy data from resolve image to buffer
- const deUint32 imageRSSizeInBytes = getImageSizeInBytes(imageRSInfo.extent, imageRSInfo.arrayLayers, m_imageFormat, imageRSInfo.mipLevels);
-
- const VkBufferCreateInfo bufferRSInfo = makeBufferCreateInfo(imageRSSizeInBytes, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
- const de::UniquePtr<Buffer> bufferRS(new Buffer(deviceInterface, device, allocator, bufferRSInfo, MemoryRequirement::HostVisible));
-
- {
- const VkBufferImageCopy bufferImageCopy =
- {
- 0u, // VkDeviceSize bufferOffset;
- 0u, // deUint32 bufferRowLength;
- 0u, // deUint32 bufferImageHeight;
- makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 0u, imageRSInfo.arrayLayers), // VkImageSubresourceLayers imageSubresource;
- makeOffset3D(0, 0, 0), // VkOffset3D imageOffset;
- imageRSInfo.extent, // VkExtent3D imageExtent;
- };
-
- deviceInterface.cmdCopyImageToBuffer(*commandBuffer, sourceImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, bufferRS->get(), 1u, &bufferImageCopy);
- }
-
- {
- const VkBufferMemoryBarrier bufferRSHostReadBarrier = makeBufferMemoryBarrier
- (
- VK_ACCESS_TRANSFER_WRITE_BIT,
- VK_ACCESS_HOST_READ_BIT,
- bufferRS->get(),
- 0u,
- imageRSSizeInBytes
- );
-
- deviceInterface.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &bufferRSHostReadBarrier, 0u, DE_NULL);
- }
-
- // End recording commands
- VK_CHECK(deviceInterface.endCommandBuffer(*commandBuffer));
-
- // Submit commands for execution and wait for completion
- submitCommandsAndWait(deviceInterface, device, queue, *commandBuffer);
-
- // Retrieve data from buffer to host memory
- const Allocation& bufferRSAllocation = bufferRS->getAllocation();
-
- invalidateMappedMemoryRange(deviceInterface, device, bufferRSAllocation.getMemory(), bufferRSAllocation.getOffset(), imageRSSizeInBytes);
-
- const tcu::ConstPixelBufferAccess bufferRSData (m_imageFormat,
- imageRSInfo.extent.width,
- imageRSInfo.extent.height,
- imageRSInfo.extent.depth * imageRSInfo.arrayLayers,
- bufferRSAllocation.getHostPtr());
-
- std::stringstream imageName;
- imageName << getImageTypeName(m_imageType) << "_" << bufferRSData.getWidth() << "_" << bufferRSData.getHeight() << "_" << bufferRSData.getDepth() << std::endl;
-
- m_context.getTestContext().getLog()
- << tcu::TestLog::Section(imageName.str(), imageName.str())
- << tcu::LogImage("image", "", bufferRSData)
- << tcu::TestLog::EndSection;
-
- return verifyResolvedImage(bufferRSData);
-}
-
-class MSInstanceDistinctValues : public MSInterpolationInstanceBase
+template <typename CaseClassName>
+class MSCase : public MultisampleCaseBase
{
public:
- MSInstanceDistinctValues(Context& context,
- const ImageMSParams& imageMSParams)
- : MSInterpolationInstanceBase(context, imageMSParams) {}
+ MSCase (tcu::TestContext& testCtx,
+ const std::string& name,
+ const ImageMSParams& imageMSParams)
+ : MultisampleCaseBase(testCtx, name, imageMSParams) {}
+
+ void init (void);
+ void initPrograms (vk::SourceCollections& programCollection) const;
+ TestInstance* createInstance (Context& context) const;
+ static MultisampleCaseBase* createCase (tcu::TestContext& testCtx,
+ const std::string& name,
+ const ImageMSParams& imageMSParams);
+};
+
+template <typename CaseClassName>
+MultisampleCaseBase* MSCase<CaseClassName>::createCase (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
+{
+ return new MSCase<CaseClassName>(testCtx, name, imageMSParams);
+}
+
+template <typename InstanceClassName>
+class MSInstance : public MSInstanceBaseResolve
+{
+public:
+ MSInstance (Context& context,
+ const ImageMSParams& imageMSParams)
+ : MSInstanceBaseResolve(context, imageMSParams) {}
VertexDataDesc getVertexDataDescripton (void) const;
- void uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const;
- tcu::TestStatus verifyResolvedImage (const tcu::ConstPixelBufferAccess& imageData) const;
-
-protected:
- struct VertexData
- {
- VertexData(const tcu::Vec4& posNdc) : positionNdc(posNdc) {}
-
- tcu::Vec4 positionNdc;
- };
+ void uploadVertexData (const Allocation& vertexBufferAllocation,
+ const VertexDataDesc& vertexDataDescripton) const;
+ tcu::TestStatus verifyImageData (const vk::VkImageCreateInfo& imageRSInfo,
+ const tcu::ConstPixelBufferAccess& dataRS) const;
};
-MSInterpolationInstanceBase::VertexDataDesc MSInstanceDistinctValues::getVertexDataDescripton (void) const
+class MSInstanceDistinctValues;
+
+template<> MultisampleInstanceBase::VertexDataDesc MSInstance<MSInstanceDistinctValues>::getVertexDataDescripton (void) const
{
VertexDataDesc vertexDataDesc;
vertexDataDesc.verticesCount = 3u;
- vertexDataDesc.dataStride = sizeof(VertexData);
+ vertexDataDesc.dataStride = sizeof(VertexDataNdc);
vertexDataDesc.dataSize = vertexDataDesc.verticesCount * vertexDataDesc.dataStride;
vertexDataDesc.primitiveTopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
@@ -784,7 +129,7 @@
0u, // deUint32 location;
0u, // deUint32 binding;
VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format;
- DE_OFFSET_OF(VertexData, positionNdc), // deUint32 offset;
+ DE_OFFSET_OF(VertexDataNdc, positionNdc), // deUint32 offset;
};
vertexDataDesc.vertexAttribDescVec.push_back(vertexAttribPositionNdc);
@@ -792,28 +137,28 @@
return vertexDataDesc;
}
-void MSInstanceDistinctValues::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+template<> void MSInstance<MSInstanceDistinctValues>::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
{
- std::vector<VertexData> vertices;
+ std::vector<VertexDataNdc> vertices;
- vertices.push_back(VertexData(tcu::Vec4(-1.0f,-1.0f, 0.0f, 1.0f)));
- vertices.push_back(VertexData(tcu::Vec4(-1.0f, 4.0f, 0.0f, 1.0f)));
- vertices.push_back(VertexData(tcu::Vec4( 4.0f,-1.0f, 0.0f, 1.0f)));
+ vertices.push_back(VertexDataNdc(tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f)));
+ vertices.push_back(VertexDataNdc(tcu::Vec4(-1.0f, 4.0f, 0.0f, 1.0f)));
+ vertices.push_back(VertexDataNdc(tcu::Vec4( 4.0f, -1.0f, 0.0f, 1.0f)));
deMemcpy(vertexBufferAllocation.getHostPtr(), dataPointer(vertices), static_cast<std::size_t>(vertexDataDescripton.dataSize));
}
-tcu::TestStatus MSInstanceDistinctValues::verifyResolvedImage (const tcu::ConstPixelBufferAccess& imageData) const
+template<> tcu::TestStatus MSInstance<MSInstanceDistinctValues>::verifyImageData (const vk::VkImageCreateInfo& imageRSInfo, const tcu::ConstPixelBufferAccess& dataRS) const
{
const deUint32 distinctValuesExpected = static_cast<deUint32>(m_imageMSParams.numSamples) + 1u;
std::vector<tcu::IVec4> distinctValues;
- for (deInt32 z = 0u; z < imageData.getDepth(); ++z)
- for (deInt32 y = 0u; y < imageData.getHeight(); ++y)
- for (deInt32 x = 0u; x < imageData.getWidth(); ++x)
+ for (deUint32 z = 0u; z < imageRSInfo.extent.depth; ++z)
+ for (deUint32 y = 0u; y < imageRSInfo.extent.height; ++y)
+ for (deUint32 x = 0u; x < imageRSInfo.extent.width; ++x)
{
- const tcu::IVec4 pixel = imageData.getPixelInt(x, y, z);
+ const tcu::IVec4 pixel = dataRS.getPixelInt(x, y, z);
if (std::find(distinctValues.begin(), distinctValues.end(), pixel) == distinctValues.end())
distinctValues.push_back(pixel);
@@ -822,28 +167,12 @@
if (distinctValues.size() >= distinctValuesExpected)
return tcu::TestStatus::pass("Passed");
else
- return tcu::TestStatus::fail("Failed");
+ return tcu::TestStatus::fail("Expected numSamples+1 different colors in the output image");
}
-class MSCaseSampleQualifierDistinctValues : public MSInterpolationCaseBase
-{
-public:
- MSCaseSampleQualifierDistinctValues (tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : MSInterpolationCaseBase(testCtx, name, imageMSParams) {}
+class MSCaseSampleQualifierDistinctValues;
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-MSInterpolationCaseBase* createMSCaseSampleQualifierDistinctValues (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
-{
- return new MSCaseSampleQualifierDistinctValues(testCtx, name, imageMSParams);
-}
-
-void MSCaseSampleQualifierDistinctValues::init (void)
+template<> void MSCase<MSCaseSampleQualifierDistinctValues>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message
@@ -852,10 +181,10 @@
<< " => Resulting image should contain n+1 different colors, where n = sample count.\n"
<< tcu::TestLog::EndMessage;
- MSInterpolationCaseBase::init();
+ MultisampleCaseBase::init();
}
-void MSCaseSampleQualifierDistinctValues::initPrograms (vk::SourceCollections& programCollection) const
+template<> void MSCase<MSCaseSampleQualifierDistinctValues>::initPrograms (vk::SourceCollections& programCollection) const
{
// Create vertex shader
std::ostringstream vs;
@@ -882,43 +211,27 @@
fs << "#version 440\n"
<< "layout(location = 0) sample in vec4 fs_in_position_ndc;\n"
<< "\n"
- << "layout(location = 0) out vec2 fs_out_color;\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
<< "\n"
<< "void main (void)\n"
<< "{\n"
<< " if(fs_in_position_ndc.y < -2.0*pow(0.5*(fs_in_position_ndc.x + 1.0), 2.0) + 1.0)\n"
- << " fs_out_color = vec2(1.0, 0.0);\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
<< " else\n"
- << " fs_out_color = vec2(0.0, 1.0);\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
<< "}\n";
programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseSampleQualifierDistinctValues::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseSampleQualifierDistinctValues>::createInstance (Context& context) const
{
- return new MSInstanceDistinctValues(context, m_imageMSParams);
+ return new MSInstance<MSInstanceDistinctValues>(context, m_imageMSParams);
}
-class MSCaseInterpolateAtSampleDistinctValues : public MSInterpolationCaseBase
-{
-public:
- MSCaseInterpolateAtSampleDistinctValues (tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : MSInterpolationCaseBase(testCtx, name, imageMSParams) {}
+class MSCaseInterpolateAtSampleDistinctValues;
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-MSInterpolationCaseBase* createMSCaseInterpolateAtSampleDistinctValues (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
-{
- return new MSCaseInterpolateAtSampleDistinctValues(testCtx, name, imageMSParams);
-}
-
-void MSCaseInterpolateAtSampleDistinctValues::init (void)
+template<> void MSCase<MSCaseInterpolateAtSampleDistinctValues>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message
@@ -927,10 +240,10 @@
<< " => Resulting image should contain n+1 different colors, where n = sample count.\n"
<< tcu::TestLog::EndMessage;
- MSInterpolationCaseBase::init();
+ MultisampleCaseBase::init();
}
-void MSCaseInterpolateAtSampleDistinctValues::initPrograms (vk::SourceCollections& programCollection) const
+template<> void MSCase<MSCaseInterpolateAtSampleDistinctValues>::initPrograms (vk::SourceCollections& programCollection) const
{
// Create vertex shader
std::ostringstream vs;
@@ -957,61 +270,42 @@
fs << "#version 440\n"
<< "layout(location = 0) in vec4 fs_in_position_ndc;\n"
<< "\n"
- << "layout(location = 0) out vec2 fs_out_color;\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
<< "\n"
<< "void main (void)\n"
<< "{\n"
<< " const vec4 position_ndc_at_sample = interpolateAtSample(fs_in_position_ndc, gl_SampleID);\n"
<< " if(position_ndc_at_sample.y < -2.0*pow(0.5*(position_ndc_at_sample.x + 1.0), 2.0) + 1.0)\n"
- << " fs_out_color = vec2(0.0, 1.0);\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
<< " else\n"
- << " fs_out_color = vec2(1.0, 0.0);\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
<< "}\n";
programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseInterpolateAtSampleDistinctValues::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseInterpolateAtSampleDistinctValues>::createInstance (Context& context) const
{
- return new MSInstanceDistinctValues(context, m_imageMSParams);
+ return new MSInstance<MSInstanceDistinctValues>(context, m_imageMSParams);
}
-class MSInstanceInterpolateScreenPosition : public MSInterpolationInstanceBase
-{
-public:
- MSInstanceInterpolateScreenPosition (Context& context,
- const ImageMSParams& imageMSParams)
- : MSInterpolationInstanceBase(context, imageMSParams) {}
+class MSInstanceInterpolateScreenPosition;
- VertexDataDesc getVertexDataDescripton (void) const;
- void uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const;
- tcu::TestStatus verifyResolvedImage (const tcu::ConstPixelBufferAccess& imageData) const;
-
-protected:
- struct VertexData
- {
- VertexData(const tcu::Vec4& posNdc, const tcu::Vec2& posScreen) : positionNdc(posNdc), positionScreen(posScreen) {}
-
- tcu::Vec4 positionNdc;
- tcu::Vec2 positionScreen;
- };
-};
-
-MSInterpolationInstanceBase::VertexDataDesc MSInstanceInterpolateScreenPosition::getVertexDataDescripton (void) const
+template<> MSInstanceBaseResolve::VertexDataDesc MSInstance<MSInstanceInterpolateScreenPosition>::getVertexDataDescripton (void) const
{
VertexDataDesc vertexDataDesc;
vertexDataDesc.verticesCount = 4u;
- vertexDataDesc.dataStride = sizeof(VertexData);
+ vertexDataDesc.dataStride = sizeof(VertexDataNdcScreen);
vertexDataDesc.dataSize = vertexDataDesc.verticesCount * vertexDataDesc.dataStride;
vertexDataDesc.primitiveTopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
const VkVertexInputAttributeDescription vertexAttribPositionNdc =
{
- 0u, // deUint32 location;
- 0u, // deUint32 binding;
- VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format;
- DE_OFFSET_OF(VertexData, positionNdc), // deUint32 offset;
+ 0u, // deUint32 location;
+ 0u, // deUint32 binding;
+ VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format;
+ DE_OFFSET_OF(VertexDataNdcScreen, positionNdc), // deUint32 offset;
};
vertexDataDesc.vertexAttribDescVec.push_back(vertexAttribPositionNdc);
@@ -1021,7 +315,7 @@
1u, // deUint32 location;
0u, // deUint32 binding;
VK_FORMAT_R32G32_SFLOAT, // VkFormat format;
- DE_OFFSET_OF(VertexData, positionScreen), // deUint32 offset;
+ DE_OFFSET_OF(VertexDataNdcScreen, positionScreen), // deUint32 offset;
};
vertexDataDesc.vertexAttribDescVec.push_back(vertexAttribPositionScreen);
@@ -1029,50 +323,33 @@
return vertexDataDesc;
}
-void MSInstanceInterpolateScreenPosition::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+template<> void MSInstance<MSInstanceInterpolateScreenPosition>::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
{
const tcu::UVec3 layerSize = getLayerSize(IMAGE_TYPE_2D, m_imageMSParams.imageSize);
const float screenSizeX = static_cast<float>(layerSize.x());
const float screenSizeY = static_cast<float>(layerSize.y());
- std::vector<VertexData> vertices;
+ std::vector<VertexDataNdcScreen> vertices;
- vertices.push_back(VertexData(tcu::Vec4(-1.0f,-1.0f, 0.0f, 1.0f), tcu::Vec2(0.0f, 0.0f)));
- vertices.push_back(VertexData(tcu::Vec4( 1.0f,-1.0f, 0.0f, 1.0f), tcu::Vec2(screenSizeX, 0.0f)));
- vertices.push_back(VertexData(tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec2(0.0f, screenSizeY)));
- vertices.push_back(VertexData(tcu::Vec4( 1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec2(screenSizeX, screenSizeY)));
+ vertices.push_back(VertexDataNdcScreen(tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec2(0.0f, 0.0f)));
+ vertices.push_back(VertexDataNdcScreen(tcu::Vec4( 1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec2(screenSizeX, 0.0f)));
+ vertices.push_back(VertexDataNdcScreen(tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec2(0.0f, screenSizeY)));
+ vertices.push_back(VertexDataNdcScreen(tcu::Vec4( 1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec2(screenSizeX, screenSizeY)));
deMemcpy(vertexBufferAllocation.getHostPtr(), dataPointer(vertices), static_cast<std::size_t>(vertexDataDescripton.dataSize));
}
-tcu::TestStatus MSInstanceInterpolateScreenPosition::verifyResolvedImage (const tcu::ConstPixelBufferAccess& imageData) const
+template<> tcu::TestStatus MSInstance<MSInstanceInterpolateScreenPosition>::verifyImageData (const vk::VkImageCreateInfo& imageRSInfo, const tcu::ConstPixelBufferAccess& dataRS) const
{
- for (deInt32 z = 0u; z < imageData.getDepth(); ++z)
- for (deInt32 y = 0u; y < imageData.getHeight(); ++y)
- for (deInt32 x = 0u; x < imageData.getWidth(); ++x)
- {
- const deInt32 firstComponent = imageData.getPixelInt(x, y, z).x();
+ if (checkForError(imageRSInfo, dataRS, 0))
+ return tcu::TestStatus::fail("Failed");
- if (firstComponent > 0)
- return tcu::TestStatus::fail("Failed");
- }
return tcu::TestStatus::pass("Passed");
}
-class MSCaseInterpolateAtSampleSingleSample : public MSInterpolationCaseBase
-{
-public:
- MSCaseInterpolateAtSampleSingleSample (tcu::TestContext& testCtx,
- const std::string& name,
- tcu::UVec3 imageSize)
- : MSInterpolationCaseBase(testCtx, name, ImageMSParams(VK_SAMPLE_COUNT_1_BIT, imageSize)) {}
+class MSCaseInterpolateAtSampleSingleSample;
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-void MSCaseInterpolateAtSampleSingleSample::init (void)
+template<> void MSCase<MSCaseInterpolateAtSampleSingleSample>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message
@@ -1081,10 +358,10 @@
<< " => fract(screen space location) should be (about) (0.5, 0.5)\n"
<< tcu::TestLog::EndMessage;
- MSInterpolationCaseBase::init();
+ MultisampleCaseBase::init();
}
-void MSCaseInterpolateAtSampleSingleSample::initPrograms (vk::SourceCollections& programCollection) const
+template<> void MSCase<MSCaseInterpolateAtSampleSingleSample>::initPrograms (vk::SourceCollections& programCollection) const
{
// Create vertex shader
std::ostringstream vs;
@@ -1112,7 +389,7 @@
fs << "#version 440\n"
<< "layout(location = 0) in vec2 fs_in_position_screen;\n"
<< "\n"
- << "layout(location = 0) out vec2 fs_out_color;\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
<< "\n"
<< "void main (void)\n"
<< "{\n"
@@ -1121,38 +398,22 @@
<< " const vec2 position_inside_pixel = fract(position_screen_at_sample);\n"
<< "\n"
<< " if (abs(position_inside_pixel.x - 0.5) <= threshold && abs(position_inside_pixel.y - 0.5) <= threshold)\n"
- << " fs_out_color = vec2(0.0, 1.0);\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
<< " else\n"
- << " fs_out_color = vec2(1.0, 0.0);\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
<< "}\n";
programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseInterpolateAtSampleSingleSample::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseInterpolateAtSampleSingleSample>::createInstance (Context& context) const
{
- return new MSInstanceInterpolateScreenPosition(context, m_imageMSParams);
+ return new MSInstance<MSInstanceInterpolateScreenPosition>(context, m_imageMSParams);
}
-class MSCaseInterpolateAtSampleIgnoresCentroid : public MSInterpolationCaseBase
-{
-public:
- MSCaseInterpolateAtSampleIgnoresCentroid(tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : MSInterpolationCaseBase(testCtx, name, imageMSParams) {}
+class MSCaseInterpolateAtSampleIgnoresCentroid;
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-MSInterpolationCaseBase* createMSCaseInterpolateAtSampleIgnoresCentroid (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
-{
- return new MSCaseInterpolateAtSampleIgnoresCentroid(testCtx, name, imageMSParams);
-}
-
-void MSCaseInterpolateAtSampleIgnoresCentroid::init (void)
+template<> void MSCase<MSCaseInterpolateAtSampleIgnoresCentroid>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message
@@ -1161,10 +422,10 @@
<< " => interpolateAtSample(screenSample, n) ~= interpolateAtSample(screenCentroid, n)\n"
<< tcu::TestLog::EndMessage;
- MSInterpolationCaseBase::init();
+ MultisampleCaseBase::init();
}
-void MSCaseInterpolateAtSampleIgnoresCentroid::initPrograms (vk::SourceCollections& programCollection) const
+template<> void MSCase<MSCaseInterpolateAtSampleIgnoresCentroid>::initPrograms (vk::SourceCollections& programCollection) const
{
// Create vertex shader
std::ostringstream vs;
@@ -1195,7 +456,7 @@
<< "layout(location = 0) centroid in vec2 fs_in_pos_screen_centroid;\n"
<< "layout(location = 1) in vec2 fs_in_pos_screen_fragment;\n"
<< "\n"
- << "layout(location = 0) out vec2 fs_out_color;\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
<< "\n"
<< "void main (void)\n"
<< "{\n"
@@ -1206,38 +467,22 @@
<< " const bool valuesEqual = all(lessThan(abs(position_a - position_b), vec2(threshold)));\n"
<< "\n"
<< " if (valuesEqual)\n"
- << " fs_out_color = vec2(0.0, 1.0);\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
<< " else\n"
- << " fs_out_color = vec2(1.0, 0.0);\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
<< "}\n";
programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseInterpolateAtSampleIgnoresCentroid::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseInterpolateAtSampleIgnoresCentroid>::createInstance (Context& context) const
{
- return new MSInstanceInterpolateScreenPosition(context, m_imageMSParams);
+ return new MSInstance<MSInstanceInterpolateScreenPosition>(context, m_imageMSParams);
}
-class MSCaseInterpolateAtSampleConsistency : public MSInterpolationCaseBase
-{
-public:
- MSCaseInterpolateAtSampleConsistency (tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : MSInterpolationCaseBase(testCtx, name, imageMSParams) {}
+class MSCaseInterpolateAtSampleConsistency;
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-MSInterpolationCaseBase* createMSCaseInterpolateAtSampleConsistency (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
-{
- return new MSCaseInterpolateAtSampleConsistency(testCtx, name, imageMSParams);
-}
-
-void MSCaseInterpolateAtSampleConsistency::init (void)
+template<> void MSCase<MSCaseInterpolateAtSampleConsistency>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message
@@ -1246,10 +491,10 @@
<< " => interpolateAtSample(screenCentroid, sampleID) = screenSample\n"
<< tcu::TestLog::EndMessage;
- MSInterpolationCaseBase::init();
+ MultisampleCaseBase::init();
}
-void MSCaseInterpolateAtSampleConsistency::initPrograms (vk::SourceCollections& programCollection) const
+template<> void MSCase<MSCaseInterpolateAtSampleConsistency>::initPrograms (vk::SourceCollections& programCollection) const
{
// Create vertex shader
std::ostringstream vs;
@@ -1280,7 +525,7 @@
<< "layout(location = 0) centroid in vec2 fs_in_pos_screen_centroid;\n"
<< "layout(location = 1) sample in vec2 fs_in_pos_screen_sample;\n"
<< "\n"
- << "layout(location = 0) out vec2 fs_out_color;\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
<< "\n"
<< "void main (void)\n"
<< "{\n"
@@ -1290,38 +535,22 @@
<< " const bool valuesEqual = all(lessThan(abs(pos_interpolated_at_sample - fs_in_pos_screen_sample), vec2(threshold)));\n"
<< "\n"
<< " if (valuesEqual)\n"
- << " fs_out_color = vec2(0.0, 1.0);\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
<< " else\n"
- << " fs_out_color = vec2(1.0, 0.0);\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
<< "}\n";
programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseInterpolateAtSampleConsistency::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseInterpolateAtSampleConsistency>::createInstance (Context& context) const
{
- return new MSInstanceInterpolateScreenPosition(context, m_imageMSParams);
+ return new MSInstance<MSInstanceInterpolateScreenPosition>(context, m_imageMSParams);
}
-class MSCaseInterpolateAtCentroidConsistency : public MSInterpolationCaseBase
-{
-public:
- MSCaseInterpolateAtCentroidConsistency (tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : MSInterpolationCaseBase(testCtx, name, imageMSParams) {}
+class MSCaseInterpolateAtCentroidConsistency;
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-MSInterpolationCaseBase* createMSCaseInterpolateAtCentroidConsistency (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
-{
- return new MSCaseInterpolateAtCentroidConsistency(testCtx, name, imageMSParams);
-}
-
-void MSCaseInterpolateAtCentroidConsistency::init (void)
+template<> void MSCase<MSCaseInterpolateAtCentroidConsistency>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message
@@ -1330,10 +559,10 @@
<< " => interpolateAtCentroid(screenSample) = screenCentroid\n"
<< tcu::TestLog::EndMessage;
- MSInterpolationCaseBase::init();
+ MultisampleCaseBase::init();
}
-void MSCaseInterpolateAtCentroidConsistency::initPrograms (vk::SourceCollections& programCollection) const
+template<> void MSCase<MSCaseInterpolateAtCentroidConsistency>::initPrograms (vk::SourceCollections& programCollection) const
{
// Create vertex shader
std::ostringstream vs;
@@ -1364,7 +593,7 @@
<< "layout(location = 0) sample in vec2 fs_in_pos_screen_sample;\n"
<< "layout(location = 1) centroid in vec2 fs_in_pos_screen_centroid;\n"
<< "\n"
- << "layout(location = 0) out vec2 fs_out_color;\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
<< "\n"
<< "void main (void)\n"
<< "{\n"
@@ -1374,38 +603,22 @@
<< " const bool valuesEqual = all(lessThan(abs(pos_interpolated_at_centroid - fs_in_pos_screen_centroid), vec2(threshold)));\n"
<< "\n"
<< " if (valuesEqual)\n"
- << " fs_out_color = vec2(0.0, 1.0);\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
<< " else\n"
- << " fs_out_color = vec2(1.0, 0.0);\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
<< "}\n";
programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseInterpolateAtCentroidConsistency::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseInterpolateAtCentroidConsistency>::createInstance (Context& context) const
{
- return new MSInstanceInterpolateScreenPosition(context, m_imageMSParams);
+ return new MSInstance<MSInstanceInterpolateScreenPosition>(context, m_imageMSParams);
}
-class MSCaseInterpolateAtOffsetPixelCenter : public MSInterpolationCaseBase
-{
-public:
- MSCaseInterpolateAtOffsetPixelCenter(tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : MSInterpolationCaseBase(testCtx, name, imageMSParams) {}
+class MSCaseInterpolateAtOffsetPixelCenter;
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-MSInterpolationCaseBase* createMSCaseInterpolateAtOffsetPixelCenter (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
-{
- return new MSCaseInterpolateAtOffsetPixelCenter(testCtx, name, imageMSParams);
-}
-
-void MSCaseInterpolateAtOffsetPixelCenter::init (void)
+template<> void MSCase<MSCaseInterpolateAtOffsetPixelCenter>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message
@@ -1414,10 +627,10 @@
<< " => interpolateAtOffset(screen, offset) should be \"varying value at the pixel center\" + offset"
<< tcu::TestLog::EndMessage;
- MSInterpolationCaseBase::init();
+ MultisampleCaseBase::init();
}
-void MSCaseInterpolateAtOffsetPixelCenter::initPrograms (vk::SourceCollections& programCollection) const
+template<> void MSCase<MSCaseInterpolateAtOffsetPixelCenter>::initPrograms (vk::SourceCollections& programCollection) const
{
// Create vertex shader
std::ostringstream vs;
@@ -1448,7 +661,7 @@
<< "layout(location = 0) in vec2 fs_in_pos_screen;\n"
<< "layout(location = 1) in vec2 fs_in_offset;\n"
<< "\n"
- << "layout(location = 0) out vec2 fs_out_color;\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
<< "\n"
<< "void main (void)\n"
<< "{\n"
@@ -1465,38 +678,22 @@
<< " }\n"
<< "\n"
<< " if (valuesEqual)\n"
- << " fs_out_color = vec2(0.0, 1.0);\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
<< " else\n"
- << " fs_out_color = vec2(1.0, 0.0);\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
<< "}\n";
programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseInterpolateAtOffsetPixelCenter::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseInterpolateAtOffsetPixelCenter>::createInstance (Context& context) const
{
- return new MSInstanceInterpolateScreenPosition(context, m_imageMSParams);
+ return new MSInstance<MSInstanceInterpolateScreenPosition>(context, m_imageMSParams);
}
-class MSCaseInterpolateAtOffsetSamplePosition : public MSInterpolationCaseBase
-{
-public:
- MSCaseInterpolateAtOffsetSamplePosition (tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : MSInterpolationCaseBase(testCtx, name, imageMSParams) {}
+class MSCaseInterpolateAtOffsetSamplePosition;
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-MSInterpolationCaseBase* createMSCaseInterpolateAtOffsetSamplePosition (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
-{
- return new MSCaseInterpolateAtOffsetSamplePosition(testCtx, name, imageMSParams);
-}
-
-void MSCaseInterpolateAtOffsetSamplePosition::init (void)
+template<> void MSCase<MSCaseInterpolateAtOffsetSamplePosition>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message
@@ -1506,10 +703,10 @@
<< " => interpolateAtOffset(screenFragment, samplePosition - (0.5,0.5)) = screenSample"
<< tcu::TestLog::EndMessage;
- MSInterpolationCaseBase::init();
+ MultisampleCaseBase::init();
}
-void MSCaseInterpolateAtOffsetSamplePosition::initPrograms (vk::SourceCollections& programCollection) const
+template<> void MSCase<MSCaseInterpolateAtOffsetSamplePosition>::initPrograms (vk::SourceCollections& programCollection) const
{
// Create vertex shader
std::ostringstream vs;
@@ -1540,7 +737,7 @@
<< "layout(location = 0) in vec2 fs_in_pos_screen_fragment;\n"
<< "layout(location = 1) sample in vec2 fs_in_pos_screen_sample;\n"
<< "\n"
- << "layout(location = 0) out vec2 fs_out_color;\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
<< "\n"
<< "void main (void)\n"
<< "{\n"
@@ -1551,65 +748,46 @@
<< " const bool valuesEqual = all(lessThan(abs(pos_interpolated_at_offset - fs_in_pos_screen_sample), vec2(threshold)));\n"
<< "\n"
<< " if (valuesEqual)\n"
- << " fs_out_color = vec2(0.0, 1.0);\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
<< " else\n"
- << " fs_out_color = vec2(1.0, 0.0);\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
<< "}\n";
programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseInterpolateAtOffsetSamplePosition::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseInterpolateAtOffsetSamplePosition>::createInstance (Context& context) const
{
- return new MSInstanceInterpolateScreenPosition(context, m_imageMSParams);
+ return new MSInstance<MSInstanceInterpolateScreenPosition>(context, m_imageMSParams);
}
-class MSInstanceInterpolateBarycentricCoordinates : public MSInterpolationInstanceBase
-{
-public:
- MSInstanceInterpolateBarycentricCoordinates (Context& context,
- const ImageMSParams& imageMSParams)
- : MSInterpolationInstanceBase(context, imageMSParams) {}
+class MSInstanceInterpolateBarycentricCoordinates;
- VertexDataDesc getVertexDataDescripton (void) const;
- void uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const;
- tcu::TestStatus verifyResolvedImage (const tcu::ConstPixelBufferAccess& imageData) const;
-
-protected:
- struct VertexData
- {
- VertexData(const tcu::Vec4& posNdc, const tcu::Vec3& barCoord) : positionNdc(posNdc), barycentricCoord(barCoord) {}
-
- tcu::Vec4 positionNdc;
- tcu::Vec3 barycentricCoord;
- };
-};
-
-MSInterpolationInstanceBase::VertexDataDesc MSInstanceInterpolateBarycentricCoordinates::getVertexDataDescripton (void) const
+template<> MSInstanceBaseResolve::VertexDataDesc MSInstance<MSInstanceInterpolateBarycentricCoordinates>::getVertexDataDescripton (void) const
{
VertexDataDesc vertexDataDesc;
vertexDataDesc.verticesCount = 3u;
- vertexDataDesc.dataStride = sizeof(VertexData);
+ vertexDataDesc.dataStride = sizeof(VertexDataNdcBarycentric);
vertexDataDesc.dataSize = vertexDataDesc.verticesCount * vertexDataDesc.dataStride;
vertexDataDesc.primitiveTopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
const VkVertexInputAttributeDescription vertexAttribPositionNdc =
{
- 0u, // deUint32 location;
- 0u, // deUint32 binding;
- VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format;
- DE_OFFSET_OF(VertexData, positionNdc), // deUint32 offset;
+ 0u, // deUint32 location;
+ 0u, // deUint32 binding;
+ VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format;
+ DE_OFFSET_OF(VertexDataNdcBarycentric, positionNdc), // deUint32 offset;
};
vertexDataDesc.vertexAttribDescVec.push_back(vertexAttribPositionNdc);
const VkVertexInputAttributeDescription vertexAttrBarCoord =
{
- 1u, // deUint32 location;
- 0u, // deUint32 binding;
- VK_FORMAT_R32G32B32_SFLOAT, // VkFormat format;
- DE_OFFSET_OF(VertexData, barycentricCoord), // deUint32 offset;
+ 1u, // deUint32 location;
+ 0u, // deUint32 binding;
+ VK_FORMAT_R32G32B32_SFLOAT, // VkFormat format;
+ DE_OFFSET_OF(VertexDataNdcBarycentric, barycentricCoord), // deUint32 offset;
};
vertexDataDesc.vertexAttribDescVec.push_back(vertexAttrBarCoord);
@@ -1617,52 +795,29 @@
return vertexDataDesc;
}
-void MSInstanceInterpolateBarycentricCoordinates::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+template<> void MSInstance<MSInstanceInterpolateBarycentricCoordinates>::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
{
// Create buffer storing vertex data
- std::vector<VertexData> vertices;
+ std::vector<VertexDataNdcBarycentric> vertices;
- vertices.push_back(VertexData(tcu::Vec4(-1.0f,-1.0f, 0.0f, 1.0f), tcu::Vec3(0.0f, 0.0f, 1.0f)));
- vertices.push_back(VertexData(tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec3(1.0f, 0.0f, 0.0f)));
- vertices.push_back(VertexData(tcu::Vec4( 1.0f,-1.0f, 0.0f, 1.0f), tcu::Vec3(0.0f, 1.0f, 0.0f)));
+ vertices.push_back(VertexDataNdcBarycentric(tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec3(0.0f, 0.0f, 1.0f)));
+ vertices.push_back(VertexDataNdcBarycentric(tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec3(1.0f, 0.0f, 0.0f)));
+ vertices.push_back(VertexDataNdcBarycentric(tcu::Vec4( 1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec3(0.0f, 1.0f, 0.0f)));
deMemcpy(vertexBufferAllocation.getHostPtr(), dataPointer(vertices), static_cast<std::size_t>(vertexDataDescripton.dataSize));
}
-tcu::TestStatus MSInstanceInterpolateBarycentricCoordinates::verifyResolvedImage (const tcu::ConstPixelBufferAccess& imageData) const
+template<> tcu::TestStatus MSInstance<MSInstanceInterpolateBarycentricCoordinates>::verifyImageData (const vk::VkImageCreateInfo& imageRSInfo, const tcu::ConstPixelBufferAccess& dataRS) const
{
- for (deInt32 z = 0u; z < imageData.getDepth(); ++z)
- for (deInt32 y = 0u; y < imageData.getHeight(); ++y)
- for (deInt32 x = 0u; x < imageData.getWidth(); ++x)
- {
- const deInt32 firstComponent = imageData.getPixelInt(x, y, z).x();
-
- if (firstComponent > 0)
- return tcu::TestStatus::fail("Failed");
- }
+ if (checkForError(imageRSInfo, dataRS, 0))
+ return tcu::TestStatus::fail("Failed");
return tcu::TestStatus::pass("Passed");
}
-class MSCaseCentroidQualifierInsidePrimitive : public MSInterpolationCaseBase
-{
-public:
- MSCaseCentroidQualifierInsidePrimitive (tcu::TestContext& testCtx,
- const std::string& name,
- const ImageMSParams& imageMSParams)
- : MSInterpolationCaseBase(testCtx, name, imageMSParams) {}
+class MSCaseCentroidQualifierInsidePrimitive;
- void init (void);
- void initPrograms (vk::SourceCollections& programCollection) const;
- TestInstance* createInstance (Context& context) const;
-};
-
-MSInterpolationCaseBase* createMSCaseCentroidQualifierInsidePrimitive (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
-{
- return new MSCaseCentroidQualifierInsidePrimitive(testCtx, name, imageMSParams);
-}
-
-void MSCaseCentroidQualifierInsidePrimitive::init (void)
+template<> void MSCase<MSCaseCentroidQualifierInsidePrimitive>::init (void)
{
m_testCtx.getLog()
<< tcu::TestLog::Message
@@ -1671,10 +826,10 @@
<< " => After interpolation we expect barycentric.xyz >= 0.0 && barycentric.xyz <= 1.0\n"
<< tcu::TestLog::EndMessage;
- MSInterpolationCaseBase::init();
+ MultisampleCaseBase::init();
}
-void MSCaseCentroidQualifierInsidePrimitive::initPrograms (vk::SourceCollections& programCollection) const
+template<> void MSCase<MSCaseCentroidQualifierInsidePrimitive>::initPrograms (vk::SourceCollections& programCollection) const
{
// Create vertex shader
std::ostringstream vs;
@@ -1702,58 +857,26 @@
fs << "#version 440\n"
<< "layout(location = 0) centroid in vec3 fs_in_barCoord;\n"
<< "\n"
- << "layout(location = 0) out vec2 fs_out_color;\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
<< "\n"
<< "void main (void)\n"
<< "{\n"
<< " if( all(greaterThanEqual(fs_in_barCoord, vec3(0.0))) && all(lessThanEqual(fs_in_barCoord, vec3(1.0))) )\n"
- << " fs_out_color = vec2(0.0, 1.0);\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
<< " else\n"
- << " fs_out_color = vec2(1.0, 0.0);\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
<< "}\n";
programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
}
-TestInstance* MSCaseCentroidQualifierInsidePrimitive::createInstance (Context& context) const
+template<> TestInstance* MSCase<MSCaseCentroidQualifierInsidePrimitive>::createInstance (Context& context) const
{
- return new MSInstanceInterpolateBarycentricCoordinates(context, m_imageMSParams);
+ return new MSInstance<MSInstanceInterpolateBarycentricCoordinates>(context, m_imageMSParams);
}
} // multisample
-tcu::TestCaseGroup* makeGroup( multisample::MSInterpolationCaseFuncPtr createCaseFuncPtr,
- tcu::TestContext& testCtx,
- const std::string groupName,
- const tcu::UVec3 imageSizes[],
- const deUint32 imageSizesElemCount,
- const vk::VkSampleCountFlagBits imageSamples[],
- const deUint32 imageSamplesElemCount)
-{
- de::MovePtr<tcu::TestCaseGroup> caseGroup(new tcu::TestCaseGroup(testCtx, groupName.c_str(), ""));
-
- for (deUint32 imageSizeNdx = 0u; imageSizeNdx < imageSizesElemCount; ++imageSizeNdx)
- {
- const tcu::UVec3 imageSize = imageSizes[imageSizeNdx];
- std::ostringstream imageSizeStream;
-
- imageSizeStream << imageSize.x() << "_" << imageSize.y() << "_" << imageSize.z();
-
- de::MovePtr<tcu::TestCaseGroup> sizeGroup(new tcu::TestCaseGroup(testCtx, imageSizeStream.str().c_str(), ""));
-
- for (deUint32 imageSamplesNdx = 0u; imageSamplesNdx < imageSamplesElemCount; ++imageSamplesNdx)
- {
- const vk::VkSampleCountFlagBits samples = imageSamples[imageSamplesNdx];
- const multisample::ImageMSParams imageMSParams = multisample::ImageMSParams(samples, imageSize);
-
- sizeGroup->addChild(createCaseFuncPtr(testCtx, "samples_" + de::toString(samples), imageMSParams));
- }
-
- caseGroup->addChild(sizeGroup.release());
- }
- return caseGroup.release();
-}
-
tcu::TestCaseGroup* createMultisampleInterpolationTests (tcu::TestContext& testCtx)
{
de::MovePtr<tcu::TestCaseGroup> testGroup(new tcu::TestCaseGroup(testCtx, "multisample_interpolation", "Multisample Interpolation"));
@@ -1789,21 +912,21 @@
de::MovePtr<tcu::TestCaseGroup> sizeGroup(new tcu::TestCaseGroup(testCtx, imageSizeStream.str().c_str(), ""));
- sizeGroup->addChild(new multisample::MSCaseInterpolateAtSampleSingleSample(testCtx, "samples_" + de::toString(1), imageSize));
+ sizeGroup->addChild(multisample::MSCase<multisample::MSCaseInterpolateAtSampleSingleSample>::createCase(testCtx, "samples_" + de::toString(1), multisample::ImageMSParams(vk::VK_SAMPLE_COUNT_1_BIT, imageSize)));
caseGroup->addChild(sizeGroup.release());
}
testGroup->addChild(caseGroup.release());
- testGroup->addChild(makeGroup(multisample::createMSCaseInterpolateAtSampleDistinctValues, testCtx, "sample_interpolate_at_distinct_values", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
- testGroup->addChild(makeGroup(multisample::createMSCaseInterpolateAtSampleIgnoresCentroid, testCtx, "sample_interpolate_at_ignores_centroid", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
- testGroup->addChild(makeGroup(multisample::createMSCaseInterpolateAtSampleConsistency, testCtx, "sample_interpolate_at_consistency", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
- testGroup->addChild(makeGroup(multisample::createMSCaseSampleQualifierDistinctValues, testCtx, "sample_qualifier_distinct_values", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
- testGroup->addChild(makeGroup(multisample::createMSCaseInterpolateAtCentroidConsistency, testCtx, "centroid_interpolate_at_consistency", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
- testGroup->addChild(makeGroup(multisample::createMSCaseCentroidQualifierInsidePrimitive, testCtx, "centroid_qualifier_inside_primitive", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
- testGroup->addChild(makeGroup(multisample::createMSCaseInterpolateAtOffsetPixelCenter, testCtx, "offset_interpolate_at_pixel_center", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
- testGroup->addChild(makeGroup(multisample::createMSCaseInterpolateAtOffsetSamplePosition, testCtx, "offset_interpolate_at_sample_position", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+ testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleDistinctValues> > (testCtx, "sample_interpolate_at_distinct_values", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+ testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleIgnoresCentroid> >(testCtx, "sample_interpolate_at_ignores_centroid", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+ testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleConsistency> > (testCtx, "sample_interpolate_at_consistency", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+ testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseSampleQualifierDistinctValues> > (testCtx, "sample_qualifier_distinct_values", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+ testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtCentroidConsistency> > (testCtx, "centroid_interpolate_at_consistency", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+ testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseCentroidQualifierInsidePrimitive> > (testCtx, "centroid_qualifier_inside_primitive", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+ testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtOffsetPixelCenter> > (testCtx, "offset_interpolate_at_pixel_center", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+ testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtOffsetSamplePosition> > (testCtx, "offset_interpolate_at_sample_position", imageSizes, sizesElemCount, imageSamples, samplesElemCount));
return testGroup.release();
}
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.hpp
index c4052ca..74ae7ca 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.hpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.hpp
@@ -4,8 +4,7 @@
* Vulkan Conformance Tests
* ------------------------
*
- * Copyright (c) 2015 The Khronos Group Inc.
- * Copyright (c) 2015 Imagination Technologies Ltd.
+ * Copyright (c) 2016 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp
new file mode 100644
index 0000000..344cf9e
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp
@@ -0,0 +1,1077 @@
+/*------------------------------------------------------------------------
+* Vulkan Conformance Tests
+* ------------------------
+*
+* Copyright (c) 2016 The Khronos Group Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*//*
+* \file vktPipelineMultisampleShaderBuiltInTests.cpp
+* \brief Multisample Shader BuiltIn Tests
+*//*--------------------------------------------------------------------*/
+
+#include "vktPipelineMultisampleShaderBuiltInTests.hpp"
+#include "vktPipelineMultisampleBaseResolveAndPerSampleFetch.hpp"
+#include "vktPipelineMakeUtil.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include "tcuVectorUtil.hpp"
+
+namespace vkt
+{
+namespace pipeline
+{
+namespace multisample
+{
+
+using namespace vk;
+
+struct VertexDataNdc
+{
+ VertexDataNdc (const tcu::Vec4& posNdc) : positionNdc(posNdc) {}
+
+ tcu::Vec4 positionNdc;
+};
+
+MultisampleInstanceBase::VertexDataDesc getVertexDataDescriptonNdc (void)
+{
+ MultisampleInstanceBase::VertexDataDesc vertexDataDesc;
+
+ vertexDataDesc.verticesCount = 4u;
+ vertexDataDesc.dataStride = sizeof(VertexDataNdc);
+ vertexDataDesc.dataSize = vertexDataDesc.verticesCount * vertexDataDesc.dataStride;
+ vertexDataDesc.primitiveTopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+
+ const VkVertexInputAttributeDescription vertexAttribPositionNdc =
+ {
+ 0u, // deUint32 location;
+ 0u, // deUint32 binding;
+ VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format;
+ DE_OFFSET_OF(VertexDataNdc, positionNdc), // deUint32 offset;
+ };
+
+ vertexDataDesc.vertexAttribDescVec.push_back(vertexAttribPositionNdc);
+
+ return vertexDataDesc;
+}
+
+void uploadVertexDataNdc (const Allocation& vertexBufferAllocation, const MultisampleInstanceBase::VertexDataDesc& vertexDataDescripton)
+{
+ std::vector<VertexDataNdc> vertices;
+
+ vertices.push_back(VertexDataNdc(tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f)));
+ vertices.push_back(VertexDataNdc(tcu::Vec4( 1.0f, -1.0f, 0.0f, 1.0f)));
+ vertices.push_back(VertexDataNdc(tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f)));
+ vertices.push_back(VertexDataNdc(tcu::Vec4( 1.0f, 1.0f, 0.0f, 1.0f)));
+
+ deMemcpy(vertexBufferAllocation.getHostPtr(), dataPointer(vertices), static_cast<std::size_t>(vertexDataDescripton.dataSize));
+}
+
+struct VertexDataNdcScreen
+{
+ VertexDataNdcScreen (const tcu::Vec4& posNdc, const tcu::Vec2& posScreen) : positionNdc(posNdc), positionScreen(posScreen) {}
+
+ tcu::Vec4 positionNdc;
+ tcu::Vec2 positionScreen;
+};
+
+MultisampleInstanceBase::VertexDataDesc getVertexDataDescriptonNdcScreen (void)
+{
+ MultisampleInstanceBase::VertexDataDesc vertexDataDesc;
+
+ vertexDataDesc.verticesCount = 4u;
+ vertexDataDesc.dataStride = sizeof(VertexDataNdcScreen);
+ vertexDataDesc.dataSize = vertexDataDesc.verticesCount * vertexDataDesc.dataStride;
+ vertexDataDesc.primitiveTopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+
+ const VkVertexInputAttributeDescription vertexAttribPositionNdc =
+ {
+ 0u, // deUint32 location;
+ 0u, // deUint32 binding;
+ VK_FORMAT_R32G32B32A32_SFLOAT, // VkFormat format;
+ DE_OFFSET_OF(VertexDataNdcScreen, positionNdc), // deUint32 offset;
+ };
+
+ vertexDataDesc.vertexAttribDescVec.push_back(vertexAttribPositionNdc);
+
+ const VkVertexInputAttributeDescription vertexAttribPositionScreen =
+ {
+ 1u, // deUint32 location;
+ 0u, // deUint32 binding;
+ VK_FORMAT_R32G32_SFLOAT, // VkFormat format;
+ DE_OFFSET_OF(VertexDataNdcScreen, positionScreen), // deUint32 offset;
+ };
+
+ vertexDataDesc.vertexAttribDescVec.push_back(vertexAttribPositionScreen);
+
+ return vertexDataDesc;
+}
+
+void uploadVertexDataNdcScreen (const Allocation& vertexBufferAllocation, const MultisampleInstanceBase::VertexDataDesc& vertexDataDescripton, const tcu::Vec2& screenSize)
+{
+ std::vector<VertexDataNdcScreen> vertices;
+
+ vertices.push_back(VertexDataNdcScreen(tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec2(0.0f, 0.0f)));
+ vertices.push_back(VertexDataNdcScreen(tcu::Vec4( 1.0f, -1.0f, 0.0f, 1.0f), tcu::Vec2(screenSize.x(), 0.0f)));
+ vertices.push_back(VertexDataNdcScreen(tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec2(0.0f, screenSize.y())));
+ vertices.push_back(VertexDataNdcScreen(tcu::Vec4( 1.0f, 1.0f, 0.0f, 1.0f), tcu::Vec2(screenSize.x(), screenSize.y())));
+
+ deMemcpy(vertexBufferAllocation.getHostPtr(), dataPointer(vertices), static_cast<std::size_t>(vertexDataDescripton.dataSize));
+}
+
+bool checkForErrorMS (const vk::VkImageCreateInfo& imageMSInfo, const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample, const deUint32 errorCompNdx)
+{
+ const deUint32 numSamples = static_cast<deUint32>(imageMSInfo.samples);
+
+ for (deUint32 z = 0u; z < imageMSInfo.extent.depth; ++z)
+ for (deUint32 y = 0u; y < imageMSInfo.extent.height; ++y)
+ for (deUint32 x = 0u; x < imageMSInfo.extent.width; ++x)
+ {
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ const deUint32 errorComponent = dataPerSample[sampleNdx].getPixelUint(x, y, z)[errorCompNdx];
+
+ if (errorComponent > 0)
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool checkForErrorRS (const vk::VkImageCreateInfo& imageRSInfo, const tcu::ConstPixelBufferAccess& dataRS, const deUint32 errorCompNdx)
+{
+ for (deUint32 z = 0u; z < imageRSInfo.extent.depth; ++z)
+ for (deUint32 y = 0u; y < imageRSInfo.extent.height; ++y)
+ for (deUint32 x = 0u; x < imageRSInfo.extent.width; ++x)
+ {
+ const deUint32 errorComponent = dataRS.getPixelUint(x, y, z)[errorCompNdx];
+
+ if (errorComponent > 0)
+ return true;
+ }
+
+ return false;
+}
+
+template <typename CaseClassName>
+class MSCase : public MSCaseBaseResolveAndPerSampleFetch
+{
+public:
+ MSCase (tcu::TestContext& testCtx,
+ const std::string& name,
+ const ImageMSParams& imageMSParams)
+ : MSCaseBaseResolveAndPerSampleFetch(testCtx, name, imageMSParams) {}
+
+ void init (void);
+ void initPrograms (vk::SourceCollections& programCollection) const;
+ TestInstance* createInstance (Context& context) const;
+ static MultisampleCaseBase* createCase (tcu::TestContext& testCtx,
+ const std::string& name,
+ const ImageMSParams& imageMSParams);
+};
+
+template <typename CaseClassName>
+MultisampleCaseBase* MSCase<CaseClassName>::createCase (tcu::TestContext& testCtx, const std::string& name, const ImageMSParams& imageMSParams)
+{
+ return new MSCase<CaseClassName>(testCtx, name, imageMSParams);
+}
+
+template <typename InstanceClassName>
+class MSInstance : public MSInstanceBaseResolveAndPerSampleFetch
+{
+public:
+ MSInstance (Context& context,
+ const ImageMSParams& imageMSParams)
+ : MSInstanceBaseResolveAndPerSampleFetch(context, imageMSParams) {}
+
+ VertexDataDesc getVertexDataDescripton (void) const;
+ void uploadVertexData (const Allocation& vertexBufferAllocation,
+ const VertexDataDesc& vertexDataDescripton) const;
+
+ tcu::TestStatus verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const;
+};
+
+class MSInstanceSampleID;
+
+template<> MultisampleInstanceBase::VertexDataDesc MSInstance<MSInstanceSampleID>::getVertexDataDescripton (void) const
+{
+ return getVertexDataDescriptonNdc();
+}
+
+template<> void MSInstance<MSInstanceSampleID>::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+{
+ uploadVertexDataNdc(vertexBufferAllocation, vertexDataDescripton);
+}
+
+template<> tcu::TestStatus MSInstance<MSInstanceSampleID>::verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const
+{
+ DE_UNREF(imageRSInfo);
+ DE_UNREF(dataRS);
+
+ const deUint32 numSamples = static_cast<deUint32>(imageMSInfo.samples);
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ for (deUint32 z = 0u; z < imageMSInfo.extent.depth; ++z)
+ for (deUint32 y = 0u; y < imageMSInfo.extent.height; ++y)
+ for (deUint32 x = 0u; x < imageMSInfo.extent.width; ++x)
+ {
+ const deUint32 sampleID = dataPerSample[sampleNdx].getPixelUint(x, y, z).x();
+
+ if (sampleID != sampleNdx)
+ return tcu::TestStatus::fail("gl_SampleID does not have correct value");
+ }
+ }
+
+ return tcu::TestStatus::pass("Passed");
+}
+
+class MSCaseSampleID;
+
+template<> void MSCase<MSCaseSampleID>::init (void)
+{
+ m_testCtx.getLog()
+ << tcu::TestLog::Message
+ << "Writing gl_SampleID to the red channel of the texture and verifying texture values.\n"
+ << "Expecting value N at sample index N of a multisample texture.\n"
+ << tcu::TestLog::EndMessage;
+
+ MultisampleCaseBase::init();
+}
+
+template<> void MSCase<MSCaseSampleID>::initPrograms (vk::SourceCollections& programCollection) const
+{
+ MSCaseBaseResolveAndPerSampleFetch::initPrograms(programCollection);
+
+ // Create vertex shader
+ std::ostringstream vs;
+
+ vs << "#version 440\n"
+ << "layout(location = 0) in vec4 vs_in_position_ndc;\n"
+ << "\n"
+ << "out gl_PerVertex {\n"
+ << " vec4 gl_Position;\n"
+ << "};\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " gl_Position = vs_in_position_ndc;\n"
+ << "}\n";
+
+ programCollection.glslSources.add("vertex_shader") << glu::VertexSource(vs.str());
+
+ // Create fragment shader
+ std::ostringstream fs;
+
+ fs << "#version 440\n"
+ << "\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
+ << "\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " fs_out_color = vec4(float(gl_SampleID) / float(255), 0.0, 0.0, 1.0);\n"
+ << "}\n";
+
+ programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
+}
+
+template<> TestInstance* MSCase<MSCaseSampleID>::createInstance (Context& context) const
+{
+ return new MSInstance<MSInstanceSampleID>(context, m_imageMSParams);
+}
+
+class MSInstanceSamplePosDistribution;
+
+template<> MultisampleInstanceBase::VertexDataDesc MSInstance<MSInstanceSamplePosDistribution>::getVertexDataDescripton (void) const
+{
+ return getVertexDataDescriptonNdc();
+}
+
+template<> void MSInstance<MSInstanceSamplePosDistribution>::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+{
+ uploadVertexDataNdc(vertexBufferAllocation, vertexDataDescripton);
+}
+
+template<> tcu::TestStatus MSInstance<MSInstanceSamplePosDistribution>::verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const
+{
+ const deUint32 numSamples = static_cast<deUint32>(imageMSInfo.samples);
+
+ // approximate Bates distribution as normal
+ const float variance = (1.0f / (12.0f * (float)numSamples));
+ const float standardDeviation = deFloatSqrt(variance);
+
+ // 95% of means of sample positions are within 2 standard deviations if
+ // they were randomly assigned. Sample patterns are expected to be more
+ // uniform than a random pattern.
+ const float distanceThreshold = 2.0f * standardDeviation;
+
+ for (deUint32 z = 0u; z < imageRSInfo.extent.depth; ++z)
+ for (deUint32 y = 0u; y < imageRSInfo.extent.height; ++y)
+ for (deUint32 x = 0u; x < imageRSInfo.extent.width; ++x)
+ {
+ const deUint32 errorComponent = dataRS.getPixelUint(x, y, z).z();
+
+ if (errorComponent > 0)
+ return tcu::TestStatus::fail("gl_SamplePosition is not within interval [0,1]");
+
+ if (numSamples >= VK_SAMPLE_COUNT_4_BIT)
+ {
+ const tcu::Vec2 averageSamplePos = tcu::Vec2((float)dataRS.getPixelUint(x, y, z).x() / 255.0f, (float)dataRS.getPixelUint(x, y, z).y() / 255.0f);
+ const tcu::Vec2 distanceFromCenter = tcu::abs(averageSamplePos - tcu::Vec2(0.5f, 0.5f));
+
+ if (distanceFromCenter.x() > distanceThreshold || distanceFromCenter.y() > distanceThreshold)
+ return tcu::TestStatus::fail("Sample positions are not uniformly distributed within the pixel");
+ }
+ }
+
+ for (deUint32 z = 0u; z < imageMSInfo.extent.depth; ++z)
+ for (deUint32 y = 0u; y < imageMSInfo.extent.height; ++y)
+ for (deUint32 x = 0u; x < imageMSInfo.extent.width; ++x)
+ {
+ std::vector<tcu::Vec2> samplePositions(numSamples);
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ const deUint32 errorComponent = dataPerSample[sampleNdx].getPixelUint(x, y, z).z();
+
+ if (errorComponent > 0)
+ return tcu::TestStatus::fail("gl_SamplePosition is not within interval [0,1]");
+
+ samplePositions[sampleNdx] = tcu::Vec2( (float)dataPerSample[sampleNdx].getPixelUint(x, y, z).x() / 255.0f,
+ (float)dataPerSample[sampleNdx].getPixelUint(x, y, z).y() / 255.0f);
+ }
+
+ for (deUint32 sampleNdxA = 0u; sampleNdxA < numSamples; ++sampleNdxA)
+ for (deUint32 sampleNdxB = sampleNdxA + 1u; sampleNdxB < numSamples; ++sampleNdxB)
+ {
+ if (samplePositions[sampleNdxA] == samplePositions[sampleNdxB])
+ return tcu::TestStatus::fail("Two samples have the same position");
+ }
+
+ if (numSamples >= VK_SAMPLE_COUNT_4_BIT)
+ {
+ tcu::Vec2 averageSamplePos(0.0f, 0.0f);
+
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ averageSamplePos.x() += samplePositions[sampleNdx].x();
+ averageSamplePos.y() += samplePositions[sampleNdx].y();
+ }
+
+ averageSamplePos.x() /= (float)numSamples;
+ averageSamplePos.y() /= (float)numSamples;
+
+ const tcu::Vec2 distanceFromCenter = tcu::abs(averageSamplePos - tcu::Vec2(0.5f, 0.5f));
+
+ if (distanceFromCenter.x() > distanceThreshold || distanceFromCenter.y() > distanceThreshold)
+ return tcu::TestStatus::fail("Sample positions are not uniformly distributed within the pixel");
+ }
+ }
+
+ return tcu::TestStatus::pass("Passed");
+}
+
+class MSCaseSamplePosDistribution;
+
+template<> void MSCase<MSCaseSamplePosDistribution>::init (void)
+{
+ m_testCtx.getLog()
+ << tcu::TestLog::Message
+ << "Verifying gl_SamplePosition value with multisample targets:\n"
+ << " a) Expect legal sample position.\n"
+ << " b) Sample position is unique within the set of all sample positions of a pixel.\n"
+ << " c) Sample position distribution is uniform or almost uniform.\n"
+ << tcu::TestLog::EndMessage;
+
+ MultisampleCaseBase::init();
+}
+
+template<> void MSCase<MSCaseSamplePosDistribution>::initPrograms (vk::SourceCollections& programCollection) const
+{
+ MSCaseBaseResolveAndPerSampleFetch::initPrograms(programCollection);
+
+ // Create vertex shader
+ std::ostringstream vs;
+
+ vs << "#version 440\n"
+ << "layout(location = 0) in vec4 vs_in_position_ndc;\n"
+ << "\n"
+ << "out gl_PerVertex {\n"
+ << " vec4 gl_Position;\n"
+ << "};\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " gl_Position = vs_in_position_ndc;\n"
+ << "}\n";
+
+ programCollection.glslSources.add("vertex_shader") << glu::VertexSource(vs.str());
+
+ // Create fragment shader
+ std::ostringstream fs;
+
+ fs << "#version 440\n"
+ << "\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
+ << "\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " if (gl_SamplePosition.x < 0.0 || gl_SamplePosition.x > 1.0 || gl_SamplePosition.y < 0.0 || gl_SamplePosition.y > 1.0)\n"
+ " fs_out_color = vec4(0.0, 0.0, 1.0, 1.0);\n"
+ " else\n"
+ " fs_out_color = vec4(gl_SamplePosition.x, gl_SamplePosition.y, 0.0, 1.0);\n"
+ "}\n";
+
+ programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
+}
+
+template<> TestInstance* MSCase<MSCaseSamplePosDistribution>::createInstance (Context& context) const
+{
+ return new MSInstance<MSInstanceSamplePosDistribution>(context, m_imageMSParams);
+}
+
+class MSInstanceSamplePosCorrectness;
+
+template<> MultisampleInstanceBase::VertexDataDesc MSInstance<MSInstanceSamplePosCorrectness>::getVertexDataDescripton (void) const
+{
+ return getVertexDataDescriptonNdcScreen();
+}
+
+template<> void MSInstance<MSInstanceSamplePosCorrectness>::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+{
+ const tcu::UVec3 layerSize = getLayerSize(IMAGE_TYPE_2D, m_imageMSParams.imageSize);
+
+ uploadVertexDataNdcScreen(vertexBufferAllocation, vertexDataDescripton, tcu::Vec2(static_cast<float>(layerSize.x()), static_cast<float>(layerSize.y())));
+}
+
+template<> tcu::TestStatus MSInstance<MSInstanceSamplePosCorrectness>::verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const
+{
+ if (checkForErrorMS(imageMSInfo, dataPerSample, 0))
+ return tcu::TestStatus::fail("Varying values are not sampled at gl_SamplePosition");
+
+ if (checkForErrorRS(imageRSInfo, dataRS, 0))
+ return tcu::TestStatus::fail("Varying values are not sampled at gl_SamplePosition");
+
+ return tcu::TestStatus::pass("Passed");
+}
+
+class MSCaseSamplePosCorrectness;
+
+template<> void MSCase<MSCaseSamplePosCorrectness>::init (void)
+{
+ m_testCtx.getLog()
+ << tcu::TestLog::Message
+ << "Verifying gl_SamplePosition correctness:\n"
+ << " 1) Varying values should be sampled at the sample position.\n"
+ << " => fract(position_screen) == gl_SamplePosition\n"
+ << tcu::TestLog::EndMessage;
+
+ MultisampleCaseBase::init();
+}
+
+template<> void MSCase<MSCaseSamplePosCorrectness>::initPrograms (vk::SourceCollections& programCollection) const
+{
+ MSCaseBaseResolveAndPerSampleFetch::initPrograms(programCollection);
+
+ // Create vertex shaders
+ std::ostringstream vs;
+
+ vs << "#version 440\n"
+ << "layout(location = 0) in vec4 vs_in_position_ndc;\n"
+ << "layout(location = 1) in vec2 vs_in_position_screen;\n"
+ << "\n"
+ << "layout(location = 0) sample out vec2 vs_out_position_screen;\n"
+ << "\n"
+ << "out gl_PerVertex {\n"
+ << " vec4 gl_Position;\n"
+ << "};\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " gl_Position = vs_in_position_ndc;\n"
+ << " vs_out_position_screen = vs_in_position_screen;\n"
+ << "}\n";
+
+ programCollection.glslSources.add("vertex_shader") << glu::VertexSource(vs.str());
+
+ // Create fragment shader
+ std::ostringstream fs;
+
+ fs << "#version 440\n"
+ << "layout(location = 0) sample in vec2 fs_in_position_screen;\n"
+ << "\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
+ << "\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " const float threshold = 0.15625; // 4 subpixel bits. Assume 3 accurate bits + 0.03125 for other errors\n"
+ << " const ivec2 nearby_pixel = ivec2(floor(fs_in_position_screen));\n"
+ << " bool ok = false;\n"
+ << "\n"
+ << " // sample at edge + inaccuaries may cause us to round to any neighboring pixel\n"
+ << " // check all neighbors for any match\n"
+ << " for (int dy = -1; dy <= 1; ++dy)\n"
+ << " for (int dx = -1; dx <= 1; ++dx)\n"
+ << " {\n"
+ << " ivec2 current_pixel = nearby_pixel + ivec2(dx, dy);\n"
+ << " vec2 position_inside_pixel = vec2(current_pixel) + gl_SamplePosition;\n"
+ << " vec2 position_diff = abs(position_inside_pixel - fs_in_position_screen);\n"
+ << "\n"
+ << " if (all(lessThan(position_diff, vec2(threshold))))\n"
+ << " ok = true;\n"
+ << " }\n"
+ << "\n"
+ << " if (ok)\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
+ << " else\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
+ << "}\n";
+
+ programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
+}
+
+template<> TestInstance* MSCase<MSCaseSamplePosCorrectness>::createInstance (Context& context) const
+{
+ return new MSInstance<MSInstanceSamplePosCorrectness>(context, m_imageMSParams);
+}
+
+class MSInstanceSampleMaskPattern : public MSInstanceBaseResolveAndPerSampleFetch
+{
+public:
+ MSInstanceSampleMaskPattern (Context& context,
+ const ImageMSParams& imageMSParams);
+
+ VkPipelineMultisampleStateCreateInfo getMSStateCreateInfo (const ImageMSParams& imageMSParams) const;
+
+ const VkDescriptorSetLayout* createMSPassDescSetLayout (const ImageMSParams& imageMSParams);
+
+ const VkDescriptorSet* createMSPassDescSet (const ImageMSParams& imageMSParams,
+ const VkDescriptorSetLayout* descSetLayout);
+
+ VertexDataDesc getVertexDataDescripton (void) const;
+
+ void uploadVertexData (const Allocation& vertexBufferAllocation,
+ const VertexDataDesc& vertexDataDescripton) const;
+
+ tcu::TestStatus verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const;
+protected:
+
+ VkSampleMask m_sampleMask;
+ Move<VkDescriptorSetLayout> m_descriptorSetLayout;
+ Move<VkDescriptorPool> m_descriptorPool;
+ Move<VkDescriptorSet> m_descriptorSet;
+ de::MovePtr<Buffer> m_buffer;
+};
+
+MSInstanceSampleMaskPattern::MSInstanceSampleMaskPattern (Context& context, const ImageMSParams& imageMSParams) : MSInstanceBaseResolveAndPerSampleFetch(context, imageMSParams)
+{
+ m_sampleMask = 0xAAAAAAAAu & ((1u << imageMSParams.numSamples) - 1u);
+}
+
+VkPipelineMultisampleStateCreateInfo MSInstanceSampleMaskPattern::getMSStateCreateInfo (const ImageMSParams& imageMSParams) const
+{
+ const VkPipelineMultisampleStateCreateInfo multisampleStateInfo =
+ {
+ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, // VkStructureType sType;
+ DE_NULL, // const void* pNext;
+ (VkPipelineMultisampleStateCreateFlags)0u, // VkPipelineMultisampleStateCreateFlags flags;
+ imageMSParams.numSamples, // VkSampleCountFlagBits rasterizationSamples;
+ VK_TRUE, // VkBool32 sampleShadingEnable;
+ 1.0f, // float minSampleShading;
+ &m_sampleMask, // const VkSampleMask* pSampleMask;
+ VK_FALSE, // VkBool32 alphaToCoverageEnable;
+ VK_FALSE, // VkBool32 alphaToOneEnable;
+ };
+
+ return multisampleStateInfo;
+}
+
+const VkDescriptorSetLayout* MSInstanceSampleMaskPattern::createMSPassDescSetLayout (const ImageMSParams& imageMSParams)
+{
+ DE_UNREF(imageMSParams);
+
+ const DeviceInterface& deviceInterface = m_context.getDeviceInterface();
+ const VkDevice device = m_context.getDevice();
+
+ // Create descriptor set layout
+ m_descriptorSetLayout = DescriptorSetLayoutBuilder()
+ .addSingleBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT)
+ .build(deviceInterface, device);
+
+ return &m_descriptorSetLayout.get();
+}
+
+const VkDescriptorSet* MSInstanceSampleMaskPattern::createMSPassDescSet (const ImageMSParams& imageMSParams, const VkDescriptorSetLayout* descSetLayout)
+{
+ DE_UNREF(imageMSParams);
+
+ const DeviceInterface& deviceInterface = m_context.getDeviceInterface();
+ const VkDevice device = m_context.getDevice();
+ Allocator& allocator = m_context.getDefaultAllocator();
+
+ // Create descriptor pool
+ m_descriptorPool = DescriptorPoolBuilder()
+ .addType(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1u)
+ .build(deviceInterface, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+
+ // Create descriptor set
+ m_descriptorSet = makeDescriptorSet(deviceInterface, device, *m_descriptorPool, *descSetLayout);
+
+ const VkBufferCreateInfo bufferSampleMaskInfo = makeBufferCreateInfo(sizeof(VkSampleMask), VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT);
+
+ m_buffer = de::MovePtr<Buffer>(new Buffer(deviceInterface, device, allocator, bufferSampleMaskInfo, MemoryRequirement::HostVisible));
+
+ deMemcpy(m_buffer->getAllocation().getHostPtr(), &m_sampleMask, sizeof(VkSampleMask));
+
+ flushMappedMemoryRange(deviceInterface, device, m_buffer->getAllocation().getMemory(), m_buffer->getAllocation().getOffset(), VK_WHOLE_SIZE);
+
+ const VkDescriptorBufferInfo descBufferInfo = makeDescriptorBufferInfo(**m_buffer, 0u, sizeof(VkSampleMask));
+
+ DescriptorSetUpdateBuilder()
+ .writeSingle(*m_descriptorSet, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, &descBufferInfo)
+ .update(deviceInterface, device);
+
+ return &m_descriptorSet.get();
+}
+
+MultisampleInstanceBase::VertexDataDesc MSInstanceSampleMaskPattern::getVertexDataDescripton (void) const
+{
+ return getVertexDataDescriptonNdc();
+}
+
+void MSInstanceSampleMaskPattern::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+{
+ uploadVertexDataNdc(vertexBufferAllocation, vertexDataDescripton);
+}
+
+tcu::TestStatus MSInstanceSampleMaskPattern::verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const
+{
+ DE_UNREF(imageRSInfo);
+ DE_UNREF(dataRS);
+
+ if (checkForErrorMS(imageMSInfo, dataPerSample, 0))
+ return tcu::TestStatus::fail("gl_SampleMaskIn bits have not been killed by pSampleMask state");
+
+ return tcu::TestStatus::pass("Passed");
+}
+
+class MSCaseSampleMaskPattern;
+
+template<> void MSCase<MSCaseSampleMaskPattern>::init (void)
+{
+ m_testCtx.getLog()
+ << tcu::TestLog::Message
+ << "Verifying gl_SampleMaskIn value with pSampleMask state. gl_SampleMaskIn does not contain any bits set that are have been killed by pSampleMask state. Expecting:\n"
+ << "Expected result: gl_SampleMaskIn AND ~(pSampleMask) should be zero.\n"
+ << tcu::TestLog::EndMessage;
+
+ MultisampleCaseBase::init();
+}
+
+template<> void MSCase<MSCaseSampleMaskPattern>::initPrograms (vk::SourceCollections& programCollection) const
+{
+ MSCaseBaseResolveAndPerSampleFetch::initPrograms(programCollection);
+
+ // Create vertex shader
+ std::ostringstream vs;
+
+ vs << "#version 440\n"
+ << "layout(location = 0) in vec4 vs_in_position_ndc;\n"
+ << "\n"
+ << "out gl_PerVertex {\n"
+ << " vec4 gl_Position;\n"
+ << "};\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " gl_Position = vs_in_position_ndc;\n"
+ << "}\n";
+
+ programCollection.glslSources.add("vertex_shader") << glu::VertexSource(vs.str());
+
+ // Create fragment shader
+ std::ostringstream fs;
+
+ fs << "#version 440\n"
+ << "\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
+ << "\n"
+ << "layout(set = 0, binding = 0, std140) uniform SampleMaskBlock\n"
+ << "{\n"
+ << " int sampleMaskPattern;\n"
+ << "};"
+ << "\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " if ((gl_SampleMaskIn[0] & ~sampleMaskPattern) != 0)\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
+ << " else\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
+ << "}\n";
+
+ programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
+}
+
+template<> TestInstance* MSCase<MSCaseSampleMaskPattern>::createInstance (Context& context) const
+{
+ return new MSInstanceSampleMaskPattern(context, m_imageMSParams);
+}
+
+class MSInstanceSampleMaskBitCount;
+
+template<> MultisampleInstanceBase::VertexDataDesc MSInstance<MSInstanceSampleMaskBitCount>::getVertexDataDescripton (void) const
+{
+ return getVertexDataDescriptonNdc();
+}
+
+template<> void MSInstance<MSInstanceSampleMaskBitCount>::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+{
+ uploadVertexDataNdc(vertexBufferAllocation, vertexDataDescripton);
+}
+
+template<> tcu::TestStatus MSInstance<MSInstanceSampleMaskBitCount>::verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const
+{
+ DE_UNREF(imageRSInfo);
+ DE_UNREF(dataRS);
+
+ if (checkForErrorMS(imageMSInfo, dataPerSample, 0))
+ return tcu::TestStatus::fail("gl_SampleMaskIn has more than one bit set for some shader invocations");
+
+ return tcu::TestStatus::pass("Passed");
+}
+
+class MSCaseSampleMaskBitCount;
+
+template<> void MSCase<MSCaseSampleMaskBitCount>::init (void)
+{
+ m_testCtx.getLog()
+ << tcu::TestLog::Message
+ << "Verifying gl_SampleMaskIn.\n"
+ << " Fragment shader will be invoked numSamples times.\n"
+ << " => gl_SampleMaskIn should have only one bit set for each shader invocation.\n"
+ << tcu::TestLog::EndMessage;
+
+ MultisampleCaseBase::init();
+}
+
+template<> void MSCase<MSCaseSampleMaskBitCount>::initPrograms (vk::SourceCollections& programCollection) const
+{
+ MSCaseBaseResolveAndPerSampleFetch::initPrograms(programCollection);
+
+ // Create vertex shader
+ std::ostringstream vs;
+
+ vs << "#version 440\n"
+ << "layout(location = 0) in vec4 vs_in_position_ndc;\n"
+ << "\n"
+ << "out gl_PerVertex {\n"
+ << " vec4 gl_Position;\n"
+ << "};\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " gl_Position = vs_in_position_ndc;\n"
+ << "}\n";
+
+ programCollection.glslSources.add("vertex_shader") << glu::VertexSource(vs.str());
+
+ // Create fragment shader
+ std::ostringstream fs;
+
+ fs << "#version 440\n"
+ << "\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
+ << "\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " uint maskBitCount = 0u;\n"
+ << "\n"
+ << " for (int i = 0; i < 32; ++i)\n"
+ << " if (((gl_SampleMaskIn[0] >> i) & 0x01) == 0x01)\n"
+ << " ++maskBitCount;\n"
+ << "\n"
+ << " if (maskBitCount != 1u)\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
+ << " else\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
+ << "}\n";
+
+ programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
+}
+
+template<> TestInstance* MSCase<MSCaseSampleMaskBitCount>::createInstance (Context& context) const
+{
+ return new MSInstance<MSInstanceSampleMaskBitCount>(context, m_imageMSParams);
+}
+
+class MSInstanceSampleMaskCorrectBit;
+
+template<> MultisampleInstanceBase::VertexDataDesc MSInstance<MSInstanceSampleMaskCorrectBit>::getVertexDataDescripton (void) const
+{
+ return getVertexDataDescriptonNdc();
+}
+
+template<> void MSInstance<MSInstanceSampleMaskCorrectBit>::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+{
+ uploadVertexDataNdc(vertexBufferAllocation, vertexDataDescripton);
+}
+
+template<> tcu::TestStatus MSInstance<MSInstanceSampleMaskCorrectBit>::verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const
+{
+ DE_UNREF(imageRSInfo);
+ DE_UNREF(dataRS);
+
+ if (checkForErrorMS(imageMSInfo, dataPerSample, 0))
+ return tcu::TestStatus::fail("The bit corresponsing to current gl_SampleID is not set in gl_SampleMaskIn");
+
+ return tcu::TestStatus::pass("Passed");
+}
+
+class MSCaseSampleMaskCorrectBit;
+
+template<> void MSCase<MSCaseSampleMaskCorrectBit>::init (void)
+{
+ m_testCtx.getLog()
+ << tcu::TestLog::Message
+ << "Verifying gl_SampleMaskIn.\n"
+ << " Fragment shader will be invoked numSamples times.\n"
+ << " => In each invocation gl_SampleMaskIn should have the bit set that corresponds to gl_SampleID.\n"
+ << tcu::TestLog::EndMessage;
+
+ MultisampleCaseBase::init();
+}
+
+template<> void MSCase<MSCaseSampleMaskCorrectBit>::initPrograms (vk::SourceCollections& programCollection) const
+{
+ MSCaseBaseResolveAndPerSampleFetch::initPrograms(programCollection);
+
+ // Create vertex shader
+ std::ostringstream vs;
+
+ vs << "#version 440\n"
+ << "layout(location = 0) in vec4 vs_in_position_ndc;\n"
+ << "\n"
+ << "out gl_PerVertex {\n"
+ << " vec4 gl_Position;\n"
+ << "};\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " gl_Position = vs_in_position_ndc;\n"
+ << "}\n";
+
+ programCollection.glslSources.add("vertex_shader") << glu::VertexSource(vs.str());
+
+ // Create fragment shader
+ std::ostringstream fs;
+
+ fs << "#version 440\n"
+ << "\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
+ << "\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " if (((gl_SampleMaskIn[0] >> gl_SampleID) & 0x01) == 0x01)\n"
+ << " fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
+ << " else\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
+ << "}\n";
+
+ programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
+}
+
+template<> TestInstance* MSCase<MSCaseSampleMaskCorrectBit>::createInstance (Context& context) const
+{
+ return new MSInstance<MSInstanceSampleMaskCorrectBit>(context, m_imageMSParams);
+}
+
+class MSInstanceSampleMaskWrite;
+
+template<> MultisampleInstanceBase::VertexDataDesc MSInstance<MSInstanceSampleMaskWrite>::getVertexDataDescripton (void) const
+{
+ return getVertexDataDescriptonNdc();
+}
+
+template<> void MSInstance<MSInstanceSampleMaskWrite>::uploadVertexData (const Allocation& vertexBufferAllocation, const VertexDataDesc& vertexDataDescripton) const
+{
+ uploadVertexDataNdc(vertexBufferAllocation, vertexDataDescripton);
+}
+
+template<> tcu::TestStatus MSInstance<MSInstanceSampleMaskWrite>::verifyImageData (const vk::VkImageCreateInfo& imageMSInfo,
+ const vk::VkImageCreateInfo& imageRSInfo,
+ const std::vector<tcu::ConstPixelBufferAccess>& dataPerSample,
+ const tcu::ConstPixelBufferAccess& dataRS) const
+{
+ const deUint32 numSamples = static_cast<deUint32>(imageMSInfo.samples);
+
+ for (deUint32 z = 0u; z < imageMSInfo.extent.depth; ++z)
+ for (deUint32 y = 0u; y < imageMSInfo.extent.height; ++y)
+ for (deUint32 x = 0u; x < imageMSInfo.extent.width; ++x)
+ {
+ for (deUint32 sampleNdx = 0u; sampleNdx < numSamples; ++sampleNdx)
+ {
+ const deUint32 firstComponent = dataPerSample[sampleNdx].getPixelUint(x, y, z)[0];
+
+ if (firstComponent != 0u && firstComponent != 255u)
+ return tcu::TestStatus::fail("Expected color to be zero or saturated on the first channel");
+ }
+ }
+
+ for (deUint32 z = 0u; z < imageRSInfo.extent.depth; ++z)
+ for (deUint32 y = 0u; y < imageRSInfo.extent.height; ++y)
+ for (deUint32 x = 0u; x < imageRSInfo.extent.width; ++x)
+ {
+ const float firstComponent = dataRS.getPixel(x, y, z)[0];
+
+ if (deFloatAbs(firstComponent - 0.5f) > 0.02f)
+ return tcu::TestStatus::fail("Expected resolve color to be half intensity on the first channel");
+ }
+
+ return tcu::TestStatus::pass("Passed");
+}
+
+class MSCaseSampleMaskWrite;
+
+template<> void MSCase<MSCaseSampleMaskWrite>::init (void)
+{
+ m_testCtx.getLog()
+ << tcu::TestLog::Message
+ << "Discarding half of the samples using gl_SampleMask."
+ << "Expecting half intensity on multisample targets (numSamples > 1)\n"
+ << tcu::TestLog::EndMessage;
+
+ MultisampleCaseBase::init();
+}
+
+template<> void MSCase<MSCaseSampleMaskWrite>::initPrograms (vk::SourceCollections& programCollection) const
+{
+ MSCaseBaseResolveAndPerSampleFetch::initPrograms(programCollection);
+
+ // Create vertex shader
+ std::ostringstream vs;
+
+ vs << "#version 440\n"
+ << "layout(location = 0) in vec4 vs_in_position_ndc;\n"
+ << "\n"
+ << "out gl_PerVertex {\n"
+ << " vec4 gl_Position;\n"
+ << "};\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " gl_Position = vs_in_position_ndc;\n"
+ << "}\n";
+
+ programCollection.glslSources.add("vertex_shader") << glu::VertexSource(vs.str());
+
+ // Create fragment shader
+ std::ostringstream fs;
+
+ fs << "#version 440\n"
+ << "\n"
+ << "layout(location = 0) out vec4 fs_out_color;\n"
+ << "\n"
+ << "void main (void)\n"
+ << "{\n"
+ << " gl_SampleMask[0] = 0xAAAAAAAA;\n"
+ << "\n"
+ << " fs_out_color = vec4(1.0, 0.0, 0.0, 1.0);\n"
+ << "}\n";
+
+ programCollection.glslSources.add("fragment_shader") << glu::FragmentSource(fs.str());
+}
+
+template<> TestInstance* MSCase<MSCaseSampleMaskWrite>::createInstance (Context& context) const
+{
+ return new MSInstance<MSInstanceSampleMaskWrite>(context, m_imageMSParams);
+}
+
+} // multisample
+
+tcu::TestCaseGroup* createMultisampleShaderBuiltInTests (tcu::TestContext& testCtx)
+{
+ de::MovePtr<tcu::TestCaseGroup> testGroup(new tcu::TestCaseGroup(testCtx, "multisample_shader_builtin", "Multisample Shader BuiltIn Tests"));
+
+ const tcu::UVec3 imageSizes[] =
+ {
+ tcu::UVec3(128u, 128u, 1u),
+ tcu::UVec3(137u, 191u, 1u),
+ };
+
+ const deUint32 sizesElemCount = static_cast<deUint32>(sizeof(imageSizes) / sizeof(tcu::UVec3));
+
+ const vk::VkSampleCountFlagBits samplesSetFull[] =
+ {
+ vk::VK_SAMPLE_COUNT_2_BIT,
+ vk::VK_SAMPLE_COUNT_4_BIT,
+ vk::VK_SAMPLE_COUNT_8_BIT,
+ vk::VK_SAMPLE_COUNT_16_BIT,
+ vk::VK_SAMPLE_COUNT_32_BIT,
+ vk::VK_SAMPLE_COUNT_64_BIT,
+ };
+
+ const deUint32 samplesSetFullCount = static_cast<deUint32>(sizeof(samplesSetFull) / sizeof(vk::VkSampleCountFlagBits));
+
+ testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseSampleID> >(testCtx, "sample_id", imageSizes, sizesElemCount, samplesSetFull, samplesSetFullCount));
+
+ de::MovePtr<tcu::TestCaseGroup> samplePositionGroup(new tcu::TestCaseGroup(testCtx, "sample_position", "Sample Position Tests"));
+
+ samplePositionGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseSamplePosDistribution> >(testCtx, "distribution", imageSizes, sizesElemCount, samplesSetFull, samplesSetFullCount));
+ samplePositionGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseSamplePosCorrectness> > (testCtx, "correctness", imageSizes, sizesElemCount, samplesSetFull, samplesSetFullCount));
+
+ testGroup->addChild(samplePositionGroup.release());
+
+ const vk::VkSampleCountFlagBits samplesSetReduced[] =
+ {
+ vk::VK_SAMPLE_COUNT_2_BIT,
+ vk::VK_SAMPLE_COUNT_4_BIT,
+ vk::VK_SAMPLE_COUNT_8_BIT,
+ vk::VK_SAMPLE_COUNT_16_BIT,
+ vk::VK_SAMPLE_COUNT_32_BIT,
+ };
+
+ const deUint32 samplesSetReducedCount = static_cast<deUint32>(sizeof(samplesSetReduced) / sizeof(vk::VkSampleCountFlagBits));
+
+ de::MovePtr<tcu::TestCaseGroup> sampleMaskGroup(new tcu::TestCaseGroup(testCtx, "sample_mask", "Sample Mask Tests"));
+
+ sampleMaskGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseSampleMaskPattern> > (testCtx, "pattern", imageSizes, sizesElemCount, samplesSetReduced, samplesSetReducedCount));
+ sampleMaskGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseSampleMaskBitCount> > (testCtx, "bit_count", imageSizes, sizesElemCount, samplesSetReduced, samplesSetReducedCount));
+ sampleMaskGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseSampleMaskCorrectBit> >(testCtx, "correct_bit",imageSizes, sizesElemCount, samplesSetReduced, samplesSetReducedCount));
+ sampleMaskGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseSampleMaskWrite> > (testCtx, "write", imageSizes, sizesElemCount, samplesSetReduced, samplesSetReducedCount));
+
+ testGroup->addChild(sampleMaskGroup.release());
+
+ return testGroup.release();
+}
+
+} // pipeline
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.hpp
new file mode 100644
index 0000000..607c7d9e
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.hpp
@@ -0,0 +1,38 @@
+#ifndef _VKTPIPELINEMULTISAMPLESHADERBUILTINTESTS_HPP
+#define _VKTPIPELINEMULTISAMPLESHADERBUILTINTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file vktPipelineMultisampleShaderBuiltInTests.hpp
+ * \brief Multisample Shader BuiltIn Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace pipeline
+{
+
+tcu::TestCaseGroup* createMultisampleShaderBuiltInTests (tcu::TestContext& testCtx);
+
+} // pipeline
+} // vkt
+
+#endif // _VKTPIPELINEMULTISAMPLESHADERBUILTINTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTestsUtil.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTestsUtil.cpp
index f1493e2..792873d 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTestsUtil.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTestsUtil.cpp
@@ -371,19 +371,19 @@
return std::min(static_cast<deUint32>(deFloatLog2(static_cast<float>(widestEdge))) + 1u, imageFormatProperties.maxMipLevels);
}
-deUint32 getImageMipLevelSizeInBytes (const VkExtent3D& baseExtents, const deUint32 layersCount, const tcu::TextureFormat& format, const deUint32 mipmapLevel)
+deUint32 getImageMipLevelSizeInBytes (const VkExtent3D& baseExtents, const deUint32 layersCount, const tcu::TextureFormat& format, const deUint32 mipmapLevel, const deUint32 numSamples)
{
const VkExtent3D extents = mipLevelExtents(baseExtents, mipmapLevel);
- return extents.width * extents.height * extents.depth * layersCount * tcu::getPixelSize(format);
+ return extents.width * extents.height * extents.depth * layersCount * numSamples * tcu::getPixelSize(format);
}
-deUint32 getImageSizeInBytes (const VkExtent3D& baseExtents, const deUint32 layersCount, const tcu::TextureFormat& format, const deUint32 mipmapLevelsCount)
+deUint32 getImageSizeInBytes (const VkExtent3D& baseExtents, const deUint32 layersCount, const tcu::TextureFormat& format, const deUint32 mipmapLevelsCount, const deUint32 numSamples)
{
deUint32 imageSizeInBytes = 0;
for (deUint32 mipmapLevel = 0; mipmapLevel < mipmapLevelsCount; ++mipmapLevel)
{
- imageSizeInBytes += getImageMipLevelSizeInBytes(baseExtents, layersCount, format, mipmapLevel);
+ imageSizeInBytes += getImageMipLevelSizeInBytes(baseExtents, layersCount, format, mipmapLevel, numSamples);
}
return imageSizeInBytes;
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTestsUtil.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTestsUtil.hpp
index 03e721e..97a5248 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTestsUtil.hpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTestsUtil.hpp
@@ -75,8 +75,8 @@
deUint32 getLayerDimensions (const ImageType imageType);
vk::VkExtent3D mipLevelExtents (const vk::VkExtent3D& baseExtents, const deUint32 mipLevel);
tcu::UVec3 mipLevelExtents (const tcu::UVec3& baseExtents, const deUint32 mipLevel);
-deUint32 getImageMipLevelSizeInBytes (const vk::VkExtent3D& baseExtents, const deUint32 layersCount, const tcu::TextureFormat& format, const deUint32 mipmapLevel);
-deUint32 getImageSizeInBytes (const vk::VkExtent3D& baseExtents, const deUint32 layersCount, const tcu::TextureFormat& format, const deUint32 mipmapLevelsCount = 1u);
+deUint32 getImageMipLevelSizeInBytes (const vk::VkExtent3D& baseExtents, const deUint32 layersCount, const tcu::TextureFormat& format, const deUint32 mipmapLevel, const deUint32 numSamples = 1u);
+deUint32 getImageSizeInBytes (const vk::VkExtent3D& baseExtents, const deUint32 layersCount, const tcu::TextureFormat& format, const deUint32 mipmapLevelsCount = 1u, const deUint32 numSamples = 1u);
deUint32 getImageMaxMipLevels (const vk::VkImageFormatProperties& imageFormatProperties, const vk::VkExtent3D& extent);
enum FeatureFlagBits
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTests.cpp
index 1cb900a..148f197 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTests.cpp
@@ -34,6 +34,7 @@
#include "vktPipelineSpecConstantTests.hpp"
#include "vktPipelineMultisampleTests.hpp"
#include "vktPipelineMultisampleInterpolationTests.hpp"
+#include "vktPipelineMultisampleShaderBuiltInTests.hpp"
#include "vktPipelineVertexInputTests.hpp"
#include "vktPipelineTimestampTests.hpp"
#include "vktPipelineCacheTests.hpp"
@@ -62,6 +63,7 @@
pipelineTests->addChild(createSpecConstantTests (testCtx));
pipelineTests->addChild(createMultisampleTests (testCtx));
pipelineTests->addChild(createMultisampleInterpolationTests (testCtx));
+ pipelineTests->addChild(createMultisampleShaderBuiltInTests (testCtx));
pipelineTests->addChild(createVertexInputTests (testCtx));
pipelineTests->addChild(createInputAssemblyTests (testCtx));
pipelineTests->addChild(createTimestampTests (testCtx));
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRender.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRender.cpp
index dd3c845..b11d133 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRender.cpp
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRender.cpp
@@ -58,7 +58,7 @@
namespace
{
-static const int GRID_SIZE = 64;
+static const int GRID_SIZE = 90;
static const deUint32 MAX_RENDER_WIDTH = 128;
static const deUint32 MAX_RENDER_HEIGHT = 128;
static const tcu::Vec4 DEFAULT_CLEAR_COLOR = tcu::Vec4(0.125f, 0.25f, 0.5f, 1.0f);
@@ -541,7 +541,7 @@
, m_isVertexCase (false)
, m_vertexShaderName ("vert")
, m_fragmentShaderName ("frag")
- , m_renderSize (128, 128)
+ , m_renderSize (MAX_RENDER_WIDTH, MAX_RENDER_HEIGHT)
, m_colorFormat (VK_FORMAT_R8G8B8A8_UNORM)
, m_evaluator (DE_NULL)
, m_uniformSetup (DE_NULL)
@@ -565,7 +565,7 @@
, m_isVertexCase (isVertexCase)
, m_vertexShaderName ("vert")
, m_fragmentShaderName ("frag")
- , m_renderSize (128, 128)
+ , m_renderSize (MAX_RENDER_WIDTH, MAX_RENDER_HEIGHT)
, m_colorFormat (VK_FORMAT_R8G8B8A8_UNORM)
, m_evaluator (&evaluator)
, m_uniformSetup (&uniformSetup)
@@ -588,7 +588,7 @@
, m_isVertexCase (isVertexCase)
, m_vertexShaderName ("vert")
, m_fragmentShaderName ("frag")
- , m_renderSize (128, 128)
+ , m_renderSize (MAX_RENDER_WIDTH, MAX_RENDER_HEIGHT)
, m_colorFormat (VK_FORMAT_R8G8B8A8_UNORM)
, m_evaluator (evaluator)
, m_uniformSetup (uniformSetup)
@@ -753,7 +753,7 @@
computeFragmentReference(refImage, *m_quadGrid);
// Compare.
- const bool compareOk = compareImages(resImage, refImage, 0.1f);
+ const bool compareOk = compareImages(resImage, refImage, 0.2f);
if (compareOk)
return tcu::TestStatus::pass("Result image matches reference");
@@ -3245,7 +3245,7 @@
bool ShaderRenderCaseInstance::compareImages (const tcu::Surface& resImage, const tcu::Surface& refImage, float errorThreshold)
{
- return tcu::fuzzyCompare(m_context.getTestContext().getLog(), "ComparisonResult", "Image comparison result", refImage, resImage, errorThreshold, tcu::COMPARE_LOG_RESULT);
+ return tcu::fuzzyCompare(m_context.getTestContext().getLog(), "ComparisonResult", "Image comparison result", refImage, resImage, errorThreshold, tcu::COMPARE_LOG_EVERYTHING);
}
} // sr
diff --git a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureFunctionTests.cpp b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureFunctionTests.cpp
index dbd8b83..43dc78b 100644
--- a/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureFunctionTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderTextureFunctionTests.cpp
@@ -54,12 +54,15 @@
{
FUNCTION_TEXTURE = 0, //!< texture(), textureOffset()
FUNCTION_TEXTUREPROJ, //!< textureProj(), textureProjOffset()
+ FUNCTION_TEXTUREPROJ2, //!< textureProj(sampler1D, vec2)
FUNCTION_TEXTUREPROJ3, //!< textureProj(sampler2D, vec3)
FUNCTION_TEXTURELOD, // ...
FUNCTION_TEXTUREPROJLOD,
+ FUNCTION_TEXTUREPROJLOD2, //!< textureProjLod(sampler1D, vec2)
FUNCTION_TEXTUREPROJLOD3, //!< textureProjLod(sampler2D, vec3)
FUNCTION_TEXTUREGRAD,
FUNCTION_TEXTUREPROJGRAD,
+ FUNCTION_TEXTUREPROJGRAD2, //!< textureProjGrad(sampler1D, vec2)
FUNCTION_TEXTUREPROJGRAD3, //!< textureProjGrad(sampler2D, vec3)
FUNCTION_TEXELFETCH,
@@ -71,28 +74,36 @@
return shaderType == glu::SHADERTYPE_FRAGMENT &&
(function == FUNCTION_TEXTURE ||
function == FUNCTION_TEXTUREPROJ ||
+ function == FUNCTION_TEXTUREPROJ2 ||
function == FUNCTION_TEXTUREPROJ3);
}
inline bool functionHasProj (Function function)
{
return function == FUNCTION_TEXTUREPROJ ||
+ function == FUNCTION_TEXTUREPROJ2 ||
function == FUNCTION_TEXTUREPROJ3 ||
function == FUNCTION_TEXTUREPROJLOD ||
- function == FUNCTION_TEXTUREPROJGRAD ||
+ function == FUNCTION_TEXTUREPROJLOD2 ||
function == FUNCTION_TEXTUREPROJLOD3 ||
+ function == FUNCTION_TEXTUREPROJGRAD ||
+ function == FUNCTION_TEXTUREPROJGRAD2||
function == FUNCTION_TEXTUREPROJGRAD3;
}
inline bool functionHasGrad (Function function)
{
- return function == FUNCTION_TEXTUREGRAD || function == FUNCTION_TEXTUREPROJGRAD || function == FUNCTION_TEXTUREPROJGRAD3;
+ return function == FUNCTION_TEXTUREGRAD ||
+ function == FUNCTION_TEXTUREPROJGRAD ||
+ function == FUNCTION_TEXTUREPROJGRAD2||
+ function == FUNCTION_TEXTUREPROJGRAD3;
}
inline bool functionHasLod (Function function)
{
return function == FUNCTION_TEXTURELOD ||
function == FUNCTION_TEXTUREPROJLOD ||
+ function == FUNCTION_TEXTUREPROJLOD2 ||
function == FUNCTION_TEXTUREPROJLOD3 ||
function == FUNCTION_TEXELFETCH;
}
@@ -360,34 +371,72 @@
return computeLodFromDerivates(DEFAULT_LOD_MODE, c.in[1].x()*s, c.in[1].y()*t, c.in[2].x()*s, c.in[2].y()*t);
}
+inline float computeLodFromGrad1D (const ShaderEvalContext& c)
+{
+ float w = (float)c.textures[0].tex1D->getWidth();
+ return computeLodFromDerivates(DEFAULT_LOD_MODE, c.in[1].x()*w, c.in[2].x()*w);
+}
+
+inline float computeLodFromGrad1DArray (const ShaderEvalContext& c)
+{
+ float w = (float)c.textures[0].tex1DArray->getWidth();
+ return computeLodFromDerivates(DEFAULT_LOD_MODE, c.in[1].x()*w, c.in[2].x()*w);
+}
+
+inline float computeLodFromGradCubeArray (const ShaderEvalContext& c)
+{
+ // \note Major axis is always -Z or +Z
+ float m = de::abs(c.in[0].z());
+ float d = (float)c.textures[0].texCubeArray->getSize();
+ float s = d/(2.0f*m);
+ float t = d/(2.0f*m);
+ return computeLodFromDerivates(DEFAULT_LOD_MODE, c.in[1].x()*s, c.in[1].y()*t, c.in[2].x()*s, c.in[2].y()*t);
+}
+
typedef void (*TexEvalFunc) (ShaderEvalContext& c, const TexLookupParams& lookupParams);
-inline Vec4 texture2D (const ShaderEvalContext& c, float s, float t, float lod) { return c.textures[0].tex2D->sample(c.textures[0].sampler, s, t, lod); }
-inline Vec4 textureCube (const ShaderEvalContext& c, float s, float t, float r, float lod) { return c.textures[0].texCube->sample(c.textures[0].sampler, s, t, r, lod); }
-inline Vec4 texture2DArray (const ShaderEvalContext& c, float s, float t, float r, float lod) { return c.textures[0].tex2DArray->sample(c.textures[0].sampler, s, t, r, lod); }
-inline Vec4 texture3D (const ShaderEvalContext& c, float s, float t, float r, float lod) { return c.textures[0].tex3D->sample(c.textures[0].sampler, s, t, r, lod); }
+inline Vec4 texture2D (const ShaderEvalContext& c, float s, float t, float lod) { return c.textures[0].tex2D->sample(c.textures[0].sampler, s, t, lod); }
+inline Vec4 textureCube (const ShaderEvalContext& c, float s, float t, float r, float lod) { return c.textures[0].texCube->sample(c.textures[0].sampler, s, t, r, lod); }
+inline Vec4 texture2DArray (const ShaderEvalContext& c, float s, float t, float r, float lod) { return c.textures[0].tex2DArray->sample(c.textures[0].sampler, s, t, r, lod); }
+inline Vec4 texture3D (const ShaderEvalContext& c, float s, float t, float r, float lod) { return c.textures[0].tex3D->sample(c.textures[0].sampler, s, t, r, lod); }
+inline Vec4 texture1D (const ShaderEvalContext& c, float s, float lod) { return c.textures[0].tex1D->sample(c.textures[0].sampler, s, lod); }
+inline Vec4 texture1DArray (const ShaderEvalContext& c, float s, float t, float lod) { return c.textures[0].tex1DArray->sample(c.textures[0].sampler, s, t, lod); }
+inline Vec4 textureCubeArray (const ShaderEvalContext& c, float s, float t, float r, float q, float lod) { return c.textures[0].texCubeArray->sample(c.textures[0].sampler, s, t, r, q, lod); }
-inline float texture2DShadow (const ShaderEvalContext& c, float ref, float s, float t, float lod) { return c.textures[0].tex2D->sampleCompare(c.textures[0].sampler, ref, s, t, lod); }
-inline float textureCubeShadow (const ShaderEvalContext& c, float ref, float s, float t, float r, float lod) { return c.textures[0].texCube->sampleCompare(c.textures[0].sampler, ref, s, t, r, lod); }
-inline float texture2DArrayShadow (const ShaderEvalContext& c, float ref, float s, float t, float r, float lod) { return c.textures[0].tex2DArray->sampleCompare(c.textures[0].sampler, ref, s, t, r, lod); }
+inline float texture2DShadow (const ShaderEvalContext& c, float ref, float s, float t, float lod) { return c.textures[0].tex2D->sampleCompare(c.textures[0].sampler, ref, s, t, lod); }
+inline float textureCubeShadow (const ShaderEvalContext& c, float ref, float s, float t, float r, float lod) { return c.textures[0].texCube->sampleCompare(c.textures[0].sampler, ref, s, t, r, lod); }
+inline float texture2DArrayShadow (const ShaderEvalContext& c, float ref, float s, float t, float r, float lod) { return c.textures[0].tex2DArray->sampleCompare(c.textures[0].sampler, ref, s, t, r, lod); }
+inline float texture1DShadow (const ShaderEvalContext& c, float ref, float s, float lod) { return c.textures[0].tex1D->sampleCompare(c.textures[0].sampler, ref, s, lod); }
+inline float texture1DArrayShadow (const ShaderEvalContext& c, float ref, float s, float t, float lod) { return c.textures[0].tex1DArray->sampleCompare(c.textures[0].sampler, ref, s, t, lod); }
+inline float textureCubeArrayShadow (const ShaderEvalContext& c, float ref, float s, float t, float r, float q, float lod) { return c.textures[0].texCubeArray->sampleCompare(c.textures[0].sampler, ref, s, t, r, q, lod); }
-inline Vec4 texture2DOffset (const ShaderEvalContext& c, float s, float t, float lod, IVec2 offset) { return c.textures[0].tex2D->sampleOffset(c.textures[0].sampler, s, t, lod, offset); }
+inline Vec4 texture2DOffset (const ShaderEvalContext& c, float s, float t, float lod, IVec2 offset) { return c.textures[0].tex2D->sampleOffset(c.textures[0].sampler, s, t, lod, offset); }
inline Vec4 texture2DArrayOffset (const ShaderEvalContext& c, float s, float t, float r, float lod, IVec2 offset) { return c.textures[0].tex2DArray->sampleOffset(c.textures[0].sampler, s, t, r, lod, offset); }
inline Vec4 texture3DOffset (const ShaderEvalContext& c, float s, float t, float r, float lod, IVec3 offset) { return c.textures[0].tex3D->sampleOffset(c.textures[0].sampler, s, t, r, lod, offset); }
+inline Vec4 texture1DOffset (const ShaderEvalContext& c, float s, float lod, deInt32 offset) { return c.textures[0].tex1D->sampleOffset(c.textures[0].sampler, s, lod, offset); }
+inline Vec4 texture1DArrayOffset (const ShaderEvalContext& c, float s, float t, float lod, deInt32 offset) { return c.textures[0].tex1DArray->sampleOffset(c.textures[0].sampler, s, t, lod, offset); }
-inline float texture2DShadowOffset (const ShaderEvalContext& c, float ref, float s, float t, float lod, IVec2 offset) { return c.textures[0].tex2D->sampleCompareOffset(c.textures[0].sampler, ref, s, t, lod, offset); }
-inline float texture2DArrayShadowOffset (const ShaderEvalContext& c, float ref, float s, float t, float r, float lod, IVec2 offset) { return c.textures[0].tex2DArray->sampleCompareOffset(c.textures[0].sampler, ref, s, t, r, lod, offset); }
+inline float texture2DShadowOffset (const ShaderEvalContext& c, float ref, float s, float t, float lod, IVec2 offset) { return c.textures[0].tex2D->sampleCompareOffset(c.textures[0].sampler, ref, s, t, lod, offset); }
+inline float texture2DArrayShadowOffset (const ShaderEvalContext& c, float ref, float s, float t, float r, float lod, IVec2 offset) { return c.textures[0].tex2DArray->sampleCompareOffset(c.textures[0].sampler, ref, s, t, r, lod, offset); }
+inline float texture1DShadowOffset (const ShaderEvalContext& c, float ref, float s, float lod, deInt32 offset) { return c.textures[0].tex1D->sampleCompareOffset(c.textures[0].sampler, ref, s, lod, offset); }
+inline float texture1DArrayShadowOffset (const ShaderEvalContext& c, float ref, float s, float t, float lod, deInt32 offset) { return c.textures[0].tex1DArray->sampleCompareOffset(c.textures[0].sampler, ref, s, t, lod, offset); }
// Eval functions.
static void evalTexture2D (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x(), c.in[0].y(), p.lod)*p.scale + p.bias; }
static void evalTextureCube (ShaderEvalContext& c, const TexLookupParams& p) { c.color = textureCube(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod)*p.scale + p.bias; }
static void evalTexture2DArray (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DArray(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod)*p.scale + p.bias; }
static void evalTexture3D (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3D(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod)*p.scale + p.bias; }
+static void evalTexture1D (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x(), p.lod)*p.scale + p.bias; }
+static void evalTexture1DArray (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DArray(c, c.in[0].x(), c.in[0].y(), p.lod)*p.scale + p.bias; }
+static void evalTextureCubeArray (ShaderEvalContext& c, const TexLookupParams& p) { c.color = textureCubeArray(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[0].w(), p.lod)*p.scale + p.bias; }
static void evalTexture2DBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x(), c.in[0].y(), p.lod+c.in[1].x())*p.scale + p.bias; }
static void evalTextureCubeBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = textureCube(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod+c.in[1].x())*p.scale + p.bias; }
static void evalTexture2DArrayBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DArray(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod+c.in[1].x())*p.scale + p.bias; }
static void evalTexture3DBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3D(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod+c.in[1].x())*p.scale + p.bias; }
+static void evalTexture1DBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x(), p.lod+c.in[1].x())*p.scale + p.bias; }
+static void evalTexture1DArrayBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DArray(c, c.in[0].x(), c.in[0].y(), p.lod+c.in[1].x())*p.scale + p.bias; }
+static void evalTextureCubeArrayBias(ShaderEvalContext& c, const TexLookupParams& p) { c.color = textureCubeArray(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[0].w(), p.lod+c.in[1].x())*p.scale + p.bias; }
static void evalTexture2DProj3 (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x()/c.in[0].z(), c.in[0].y()/c.in[0].z(), p.lod)*p.scale + p.bias; }
static void evalTexture2DProj3Bias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x()/c.in[0].z(), c.in[0].y()/c.in[0].z(), p.lod+c.in[1].x())*p.scale + p.bias; }
@@ -395,29 +444,44 @@
static void evalTexture2DProjBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), p.lod+c.in[1].x())*p.scale + p.bias; }
static void evalTexture3DProj (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3D(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[0].z()/c.in[0].w(), p.lod)*p.scale + p.bias; }
static void evalTexture3DProjBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3D(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[0].z()/c.in[0].w(), p.lod+c.in[1].x())*p.scale + p.bias; }
+static void evalTexture1DProj2 (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x()/c.in[0].y(), p.lod)*p.scale + p.bias; }
+static void evalTexture1DProj2Bias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x()/c.in[0].y(), p.lod+c.in[1].x())*p.scale + p.bias; }
+static void evalTexture1DProj (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x()/c.in[0].w(), p.lod)*p.scale + p.bias; }
+static void evalTexture1DProjBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x()/c.in[0].w(), p.lod+c.in[1].x())*p.scale + p.bias; }
static void evalTexture2DLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x(), c.in[0].y(), c.in[1].x())*p.scale + p.bias; }
static void evalTextureCubeLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = textureCube(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[1].x())*p.scale + p.bias; }
static void evalTexture2DArrayLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DArray(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[1].x())*p.scale + p.bias; }
static void evalTexture3DLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3D(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[1].x())*p.scale + p.bias; }
+static void evalTexture1DLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x(), c.in[1].x())*p.scale + p.bias; }
+static void evalTexture1DArrayLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DArray(c, c.in[0].x(), c.in[0].y(), c.in[1].x())*p.scale + p.bias; }
+static void evalTextureCubeArrayLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = textureCubeArray(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[0].w(), c.in[1].x())*p.scale + p.bias; }
static void evalTexture2DProjLod3 (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x()/c.in[0].z(), c.in[0].y()/c.in[0].z(), c.in[1].x())*p.scale + p.bias; }
static void evalTexture2DProjLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[1].x())*p.scale + p.bias; }
static void evalTexture3DProjLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3D(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[0].z()/c.in[0].w(), c.in[1].x())*p.scale + p.bias; }
+static void evalTexture1DProjLod2 (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x()/c.in[0].y(), c.in[1].x())*p.scale + p.bias; }
+static void evalTexture1DProjLod (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x()/c.in[0].w(), c.in[1].x())*p.scale + p.bias; }
// Offset variants
static void evalTexture2DOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x(), c.in[0].y(), p.lod, p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture2DArrayOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DArrayOffset(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod, p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture3DOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3DOffset(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod, p.offset)*p.scale + p.bias; }
+static void evalTexture1DOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x(), p.lod, p.offset.x())*p.scale + p.bias; }
+static void evalTexture1DArrayOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DArrayOffset(c, c.in[0].x(), c.in[0].y(), p.lod, p.offset.x())*p.scale + p.bias; }
static void evalTexture2DOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x(), c.in[0].y(), p.lod+c.in[1].x(), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture2DArrayOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DArrayOffset(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod+c.in[1].x(), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture3DOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3DOffset(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod+c.in[1].x(), p.offset)*p.scale + p.bias; }
+static void evalTexture1DOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x(), p.lod+c.in[1].x(), p.offset.x())*p.scale + p.bias; }
+static void evalTexture1DArrayOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DArrayOffset(c, c.in[0].x(), c.in[0].y(), p.lod+c.in[1].x(), p.offset.x())*p.scale + p.bias; }
static void evalTexture2DLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x(), c.in[0].y(), c.in[1].x(), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture2DArrayLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DArrayOffset(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[1].x(), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture3DLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3DOffset(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[1].x(), p.offset)*p.scale + p.bias; }
+static void evalTexture1DLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x(), c.in[1].x(), p.offset.x())*p.scale + p.bias; }
+static void evalTexture1DArrayLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DArrayOffset(c, c.in[0].x(), c.in[0].y(), c.in[1].x(), p.offset.x())*p.scale + p.bias; }
static void evalTexture2DProj3Offset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x()/c.in[0].z(), c.in[0].y()/c.in[0].z(), p.lod, p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture2DProj3OffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x()/c.in[0].z(), c.in[0].y()/c.in[0].z(), p.lod+c.in[1].x(), p.offset.swizzle(0,1))*p.scale + p.bias; }
@@ -425,10 +489,16 @@
static void evalTexture2DProjOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), p.lod+c.in[1].x(), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture3DProjOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3DOffset(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[0].z()/c.in[0].w(), p.lod, p.offset)*p.scale + p.bias; }
static void evalTexture3DProjOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3DOffset(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[0].z()/c.in[0].w(), p.lod+c.in[1].x(), p.offset)*p.scale + p.bias; }
+static void evalTexture1DProj2Offset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x()/c.in[0].y(), p.lod, p.offset.x())*p.scale + p.bias; }
+static void evalTexture1DProj2OffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x()/c.in[0].y(), p.lod+c.in[1].x(), p.offset.x())*p.scale + p.bias; }
+static void evalTexture1DProjOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x()/c.in[0].w(), p.lod, p.offset.x())*p.scale + p.bias; }
+static void evalTexture1DProjOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x()/c.in[0].w(), p.lod+c.in[1].x(), p.offset.x())*p.scale + p.bias; }
static void evalTexture2DProjLod3Offset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x()/c.in[0].z(), c.in[0].y()/c.in[0].z(), c.in[1].x(), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture2DProjLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[1].x(), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture3DProjLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3DOffset(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[0].z()/c.in[0].w(), c.in[1].x(), p.offset)*p.scale + p.bias; }
+static void evalTexture1DProjLod2Offset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x()/c.in[0].y(), c.in[1].x(), p.offset.x())*p.scale + p.bias; }
+static void evalTexture1DProjLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x()/c.in[0].w(), c.in[1].x(), p.offset.x())*p.scale + p.bias; }
// Shadow variants
@@ -439,50 +509,85 @@
static void evalTextureCubeShadowBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = textureCubeShadow(c, c.in[0].w(), c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod+c.in[1].x()); }
static void evalTexture2DArrayShadow (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DArrayShadow(c, c.in[0].w(), c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod); }
+static void evalTexture1DShadow (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadow(c, c.in[0].z(), c.in[0].x(), p.lod); }
+static void evalTexture1DShadowBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadow(c, c.in[0].z(), c.in[0].x(), p.lod+c.in[1].x()); }
+static void evalTexture1DArrayShadow (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DArrayShadow(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), p.lod); }
+static void evalTexture1DArrayShadowBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DArrayShadow(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), p.lod+c.in[1].x()); }
+static void evalTextureCubeArrayShadow (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = textureCubeArrayShadow(c, c.in[0].w(), c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[0].w(), p.lod); }
-static void evalTexture2DShadowLod (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture2DShadow(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), c.in[1].x()); }
-static void evalTexture2DShadowLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), c.in[1].x(), p.offset.swizzle(0,1)); }
+static void evalTexture2DShadowLod (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture2DShadow(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), c.in[1].x()); }
+static void evalTexture2DShadowLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), c.in[1].x(), p.offset.swizzle(0,1)); }
+static void evalTexture1DShadowLod (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture1DShadow(c, c.in[0].z(), c.in[0].x(), c.in[1].x()); }
+static void evalTexture1DShadowLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[1].x(), p.offset.x()); }
+static void evalTexture1DArrayShadowLod (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture1DArrayShadow(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), c.in[1].x()); }
+static void evalTexture1DArrayShadowLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DArrayShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), c.in[1].x(), p.offset.x()); }
-static void evalTexture2DShadowProj (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), p.lod); }
-static void evalTexture2DShadowProjBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), p.lod+c.in[1].x()); }
+static void evalTexture2DShadowProj (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), p.lod); }
+static void evalTexture2DShadowProjBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), p.lod+c.in[1].x()); }
+static void evalTexture1DShadowProj (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), p.lod); }
+static void evalTexture1DShadowProjBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), p.lod+c.in[1].x()); }
-static void evalTexture2DShadowProjLod (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture2DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[1].x()); }
-static void evalTexture2DShadowProjLodOffset(ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[1].x(), p.offset.swizzle(0,1)); }
+static void evalTexture2DShadowProjLod (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture2DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[1].x()); }
+static void evalTexture2DShadowProjLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[1].x(), p.offset.swizzle(0,1)); }
+static void evalTexture1DShadowProjLod (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture1DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[1].x()); }
+static void evalTexture1DShadowProjLodOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadowOffset(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[1].x(), p.offset.x()); }
-static void evalTexture2DShadowOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), p.lod, p.offset.swizzle(0,1)); }
-static void evalTexture2DShadowOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), p.lod+c.in[1].x(), p.offset.swizzle(0,1)); }
+static void evalTexture2DShadowOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), p.lod, p.offset.swizzle(0,1)); }
+static void evalTexture2DShadowOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), p.lod+c.in[1].x(), p.offset.swizzle(0,1)); }
+static void evalTexture2DArrayShadowOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DArrayShadowOffset(c, c.in[0].w(), c.in[0].x(), c.in[0].y(), c.in[0].z(), p.lod, p.offset.swizzle(0,1)); }
+static void evalTexture1DShadowOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadowOffset(c, c.in[0].z(), c.in[0].x(), p.lod, p.offset.x()); }
+static void evalTexture1DShadowOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadowOffset(c, c.in[0].z(), c.in[0].x(), p.lod+c.in[1].x(), p.offset.x()); }
+static void evalTexture1DArrayShadowOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DArrayShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), p.lod, p.offset.x()); }
+static void evalTexture1DArrayShadowOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DArrayShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), p.lod+c.in[1].x(), p.offset.x()); }
static void evalTexture2DShadowProjOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), p.lod, p.offset.swizzle(0,1)); }
static void evalTexture2DShadowProjOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), p.lod+c.in[1].x(), p.offset.swizzle(0,1)); }
+static void evalTexture1DShadowProjOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadowOffset(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), p.lod, p.offset.x()); }
+static void evalTexture1DShadowProjOffsetBias (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadowOffset(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), p.lod+c.in[1].x(), p.offset.x()); }
// Gradient variarts
-static void evalTexture2DGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x(), c.in[0].y(), computeLodFromGrad2D(c))*p.scale + p.bias; }
-static void evalTextureCubeGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = textureCube(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGradCube(c))*p.scale + p.bias; }
-static void evalTexture2DArrayGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DArray(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGrad2DArray(c))*p.scale + p.bias; }
-static void evalTexture3DGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3D(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGrad3D(c))*p.scale + p.bias; }
+static void evalTexture2DGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x(), c.in[0].y(), computeLodFromGrad2D(c))*p.scale + p.bias; }
+static void evalTextureCubeGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = textureCube(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGradCube(c))*p.scale + p.bias; }
+static void evalTexture2DArrayGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DArray(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGrad2DArray(c))*p.scale + p.bias; }
+static void evalTexture3DGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3D(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGrad3D(c))*p.scale + p.bias; }
+static void evalTexture1DGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x(), computeLodFromGrad1D(c))*p.scale + p.bias; }
+static void evalTexture1DArrayGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DArray(c, c.in[0].x(), c.in[0].y(), computeLodFromGrad1DArray(c))*p.scale + p.bias; }
+static void evalTextureCubeArrayGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = textureCubeArray(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), c.in[0].w(), computeLodFromGradCubeArray(c))*p.scale + p.bias; }
static void evalTexture2DShadowGrad (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture2DShadow(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), computeLodFromGrad2D(c)); }
static void evalTextureCubeShadowGrad (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = textureCubeShadow(c, c.in[0].w(), c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGradCube(c)); }
static void evalTexture2DArrayShadowGrad (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture2DArrayShadow(c, c.in[0].w(), c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGrad2DArray(c)); }
+static void evalTexture1DShadowGrad (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture1DShadow(c, c.in[0].z(), c.in[0].x(), computeLodFromGrad1D(c)); }
+static void evalTexture1DArrayShadowGrad (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture1DArrayShadow(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), computeLodFromGrad1DArray(c)); }
static void evalTexture2DGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x(), c.in[0].y(), computeLodFromGrad2D(c), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture2DArrayGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DArrayOffset(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGrad2DArray(c), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture3DGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3DOffset(c, c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGrad3D(c), p.offset)*p.scale + p.bias; }
+static void evalTexture1DGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x(), computeLodFromGrad1D(c), p.offset.x())*p.scale + p.bias; }
+static void evalTexture1DArrayGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DArrayOffset(c, c.in[0].x(), c.in[0].y(), computeLodFromGrad1DArray(c), p.offset.x())*p.scale + p.bias; }
static void evalTexture2DShadowGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), computeLodFromGrad2D(c), p.offset.swizzle(0,1)); }
static void evalTexture2DArrayShadowGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DArrayShadowOffset(c, c.in[0].w(), c.in[0].x(), c.in[0].y(), c.in[0].z(), computeLodFromGrad2DArray(c), p.offset.swizzle(0,1)); }
+static void evalTexture1DShadowGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadowOffset(c, c.in[0].z(), c.in[0].x(), computeLodFromGrad1D(c), p.offset.x()); }
+static void evalTexture1DArrayShadowGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DArrayShadowOffset(c, c.in[0].z(), c.in[0].x(), c.in[0].y(), computeLodFromGrad1DArray(c), p.offset.x()); }
static void evalTexture2DShadowProjGrad (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture2DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), computeLodFromGrad2D(c)); }
static void evalTexture2DShadowProjGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture2DShadowOffset(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), computeLodFromGrad2D(c), p.offset.swizzle(0,1)); }
+static void evalTexture1DShadowProjGrad (ShaderEvalContext& c, const TexLookupParams&) { c.color.x() = texture1DShadow(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), computeLodFromGrad1D(c)); }
+static void evalTexture1DShadowProjGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color.x() = texture1DShadowOffset(c, c.in[0].z()/c.in[0].w(), c.in[0].x()/c.in[0].w(), computeLodFromGrad1D(c), p.offset.x()); }
static void evalTexture2DProjGrad3 (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x()/c.in[0].z(), c.in[0].y()/c.in[0].z(), computeLodFromGrad2D(c))*p.scale + p.bias; }
static void evalTexture2DProjGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2D(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), computeLodFromGrad2D(c))*p.scale + p.bias; }
static void evalTexture3DProjGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3D(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[0].z()/c.in[0].w(), computeLodFromGrad3D(c))*p.scale + p.bias; }
+static void evalTexture1DProjGrad2 (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x()/c.in[0].y(), computeLodFromGrad1D(c))*p.scale + p.bias; }
+static void evalTexture1DProjGrad (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1D(c, c.in[0].x()/c.in[0].w(), computeLodFromGrad1D(c))*p.scale + p.bias; }
static void evalTexture2DProjGrad3Offset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x()/c.in[0].z(), c.in[0].y()/c.in[0].z(), computeLodFromGrad2D(c), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture2DProjGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture2DOffset(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), computeLodFromGrad2D(c), p.offset.swizzle(0,1))*p.scale + p.bias; }
static void evalTexture3DProjGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture3DOffset(c, c.in[0].x()/c.in[0].w(), c.in[0].y()/c.in[0].w(), c.in[0].z()/c.in[0].w(), computeLodFromGrad3D(c), p.offset)*p.scale + p.bias; }
+static void evalTexture1DProjGrad2Offset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x()/c.in[0].y(), computeLodFromGrad1D(c), p.offset.x())*p.scale + p.bias; }
+static void evalTexture1DProjGradOffset (ShaderEvalContext& c, const TexLookupParams& p) { c.color = texture1DOffset(c, c.in[0].x()/c.in[0].w(), computeLodFromGrad1D(c), p.offset.x())*p.scale + p.bias; }
// Texel fetch variants
@@ -512,6 +617,21 @@
c.color = c.textures[0].tex3D->getLevel(lod).getPixel(x, y, z)*p.scale + p.bias;
}
+static void evalTexelFetch1D (ShaderEvalContext& c, const TexLookupParams& p)
+{
+ int x = deChopFloatToInt32(c.in[0].x())+p.offset.x();
+ int lod = deChopFloatToInt32(c.in[1].x());
+ c.color = c.textures[0].tex1D->getLevel(lod).getPixel(x, 0)*p.scale + p.bias;
+}
+
+static void evalTexelFetch1DArray (ShaderEvalContext& c, const TexLookupParams& p)
+{
+ int x = deChopFloatToInt32(c.in[0].x())+p.offset.x();
+ int l = deChopFloatToInt32(c.in[0].y());
+ int lod = deChopFloatToInt32(c.in[1].x());
+ c.color = c.textures[0].tex1DArray->getLevel(lod).getPixel(x, l)*p.scale + p.bias;
+}
+
class TexLookupEvaluator : public ShaderEvaluator
{
public:
@@ -525,6 +645,17 @@
const TexLookupParams& m_lookupParams;
};
+static void checkDeviceFeatures (Context& context, TextureType textureType)
+{
+ if (textureType == TEXTURETYPE_CUBE_ARRAY)
+ {
+ const vk::VkPhysicalDeviceFeatures& deviceFeatures = context.getDeviceFeatures();
+
+ if (!deviceFeatures.imageCubeArray)
+ TCU_THROW(NotSupportedError, "Cube array is not supported");
+ }
+}
+
class ShaderTextureFunctionInstance : public ShaderRenderCaseInstance
{
public:
@@ -560,6 +691,8 @@
, m_textureSpec (textureSpec)
, m_lookupParams (lookupParams)
{
+ checkDeviceFeatures(m_context, m_textureSpec.type);
+
{
// Base coord scale & bias
Vec4 s = m_lookupSpec.maxCoord-m_lookupSpec.minCoord;
@@ -657,7 +790,7 @@
bool isProj = functionHasProj(m_lookupSpec.function);
bool isAutoLod = functionHasAutoLod(m_isVertexCase ? glu::SHADERTYPE_VERTEX : glu::SHADERTYPE_FRAGMENT,
m_lookupSpec.function); // LOD can vary significantly
- float proj = isProj ? 1.0f/m_lookupSpec.minCoord[m_lookupSpec.function == FUNCTION_TEXTUREPROJ3 ? 2 : 3] : 1.0f;
+ float proj = isProj ? 1.0f/m_lookupSpec.minCoord[m_lookupSpec.function == FUNCTION_TEXTUREPROJ2 ? 1 : m_lookupSpec.function == FUNCTION_TEXTUREPROJ3 ? 2 : 3] : 1.0f;
TexLookupParams lookupParams;
switch (m_textureSpec.type)
@@ -822,6 +955,140 @@
break;
}
+ case TEXTURETYPE_1D:
+ {
+ float levelStep = isAutoLod ? 0.0f : 1.0f / (float)de::max(1, m_textureSpec.numLevels-1);
+ Vec4 cScale = fmtInfo.valueMax-fmtInfo.valueMin;
+ Vec4 cBias = fmtInfo.valueMin;
+ int baseCellSize = m_textureSpec.width/4;
+ de::MovePtr<tcu::Texture1D> texture1D;
+
+ texture1D = de::MovePtr<tcu::Texture1D>(new tcu::Texture1D(texFmt, m_textureSpec.width));
+
+ for (int level = 0; level < m_textureSpec.numLevels; level++)
+ {
+ float fA = float(level)*levelStep;
+ float fB = 1.0f-fA;
+ Vec4 colorA = cBias + cScale*Vec4(fA, fB, fA, fB);
+ Vec4 colorB = cBias + cScale*Vec4(fB, fA, fB, fA);
+
+ texture1D->allocLevel(level);
+ tcu::fillWithGrid(texture1D->getLevel(level), de::max(1, baseCellSize>>level), colorA, colorB);
+ }
+
+ // Compute LOD.
+ float dudx = (m_lookupSpec.maxCoord[0]-m_lookupSpec.minCoord[0])*proj*(float)m_textureSpec.width / (float)viewportSize[0];
+ lookupParams.lod = computeLodFromDerivates(DEFAULT_LOD_MODE, dudx, 0.0f);
+
+ // Append to texture list.
+ m_textures.push_back(TextureBindingSp(new TextureBinding(texture1D.release(), m_textureSpec.sampler)));
+ break;
+ }
+
+ case TEXTURETYPE_1D_ARRAY:
+ {
+ float layerStep = 1.0f / (float)m_textureSpec.depth;
+ float levelStep = isAutoLod ? 0.0f : 1.0f / (float)(de::max(1, m_textureSpec.numLevels-1)*m_textureSpec.depth);
+ Vec4 cScale = fmtInfo.valueMax-fmtInfo.valueMin;
+ Vec4 cBias = fmtInfo.valueMin;
+ int baseCellSize = m_textureSpec.width/4;
+ de::MovePtr<tcu::Texture1DArray> texture1DArray;
+
+ texture1DArray = de::MovePtr<tcu::Texture1DArray>(new tcu::Texture1DArray(texFmt, m_textureSpec.width, m_textureSpec.depth));
+
+ for (int level = 0; level < m_textureSpec.numLevels; level++)
+ {
+ texture1DArray->allocLevel(level);
+ tcu::PixelBufferAccess levelAccess = texture1DArray->getLevel(level);
+
+ for (int layer = 0; layer < levelAccess.getHeight(); layer++)
+ {
+ float fA = (float)layer*layerStep + (float)level*levelStep;
+ float fB = 1.0f-fA;
+ Vec4 colorA = cBias + cScale*Vec4(fA, fB, fA, fB);
+ Vec4 colorB = cBias + cScale*Vec4(fB, fA, fB, fA);
+
+ tcu::fillWithGrid(tcu::getSubregion(levelAccess, 0, layer, 0, levelAccess.getWidth(), 1, 1), de::max(1, baseCellSize>>level), colorA, colorB);
+ }
+ }
+
+ // Compute LOD.
+ float dudx = (m_lookupSpec.maxCoord[0]-m_lookupSpec.minCoord[0])*proj*(float)m_textureSpec.width / (float)viewportSize[0];
+ lookupParams.lod = computeLodFromDerivates(DEFAULT_LOD_MODE, dudx, 0.0f);
+
+ // Append to texture list.
+ m_textures.push_back(TextureBindingSp(new TextureBinding(texture1DArray.release(), m_textureSpec.sampler)));
+ break;
+ }
+
+ case TEXTURETYPE_CUBE_ARRAY:
+ {
+ float layerStep = 1.0f / (float)(m_textureSpec.depth/6);
+ float levelStep = isAutoLod ? 0.0f : 1.0f / (float)(de::max(1, m_textureSpec.numLevels-1)*(m_textureSpec.depth/6));
+ Vec4 cScale = fmtInfo.valueMax-fmtInfo.valueMin;
+ Vec4 cBias = fmtInfo.valueMin;
+ Vec4 cCorner = cBias + cScale*0.5f;
+ int baseCellSize = de::min(m_textureSpec.width/4, m_textureSpec.height/4);
+ de::MovePtr<tcu::TextureCubeArray> textureCubeArray;
+
+ DE_ASSERT(m_textureSpec.width == m_textureSpec.height);
+ DE_ASSERT(m_textureSpec.depth % 6 == 0);
+
+ textureCubeArray = de::MovePtr<tcu::TextureCubeArray>(new tcu::TextureCubeArray(texFmt, m_textureSpec.width, m_textureSpec.depth));
+
+ for (int level = 0; level < m_textureSpec.numLevels; level++)
+ {
+ float fA = float(level)*levelStep;
+ float fB = 1.0f-fA;
+ Vec2 f (fA, fB);
+
+ textureCubeArray->allocLevel(level);
+ tcu::PixelBufferAccess levelAccess = textureCubeArray->getLevel(level);
+
+ for (int layer = 0; layer < m_textureSpec.depth/6; layer++)
+ {
+ float layerCorr = 1.0f-(float)layer*layerStep;
+
+ for (int face = 0; face < tcu::CUBEFACE_LAST; face++)
+ {
+ const IVec4& swzA = texCubeSwz[face];
+ IVec4 swzB = 1-swzA;
+ Vec4 colorA = cBias + cScale*f.swizzle(swzA[0], swzA[1], swzA[2], swzA[3])*layerCorr;
+ Vec4 colorB = cBias + cScale*f.swizzle(swzB[0], swzB[1], swzB[2], swzB[3])*layerCorr;
+
+ {
+ const tcu::PixelBufferAccess access = tcu::getSubregion(levelAccess, 0, 0, (layer*6)+face, levelAccess.getWidth(), levelAccess.getHeight(), 1);
+ const int lastPix = access.getWidth()-1;
+
+ tcu::fillWithGrid(access, de::max(1, baseCellSize>>level), colorA, colorB);
+
+ // Ensure all corners have identical colors in order to avoid dealing with ambiguous corner texel filtering
+ access.setPixel(cCorner, 0, 0);
+ access.setPixel(cCorner, 0, lastPix);
+ access.setPixel(cCorner, lastPix, 0);
+ access.setPixel(cCorner, lastPix, lastPix);
+ }
+ }
+ }
+ }
+
+ // Compute LOD \note Assumes that only single side is accessed and R is constant major axis.
+ DE_ASSERT(de::abs(m_lookupSpec.minCoord[2] - m_lookupSpec.maxCoord[2]) < 0.005);
+ DE_ASSERT(de::abs(m_lookupSpec.minCoord[0]) < de::abs(m_lookupSpec.minCoord[2]) && de::abs(m_lookupSpec.maxCoord[0]) < de::abs(m_lookupSpec.minCoord[2]));
+ DE_ASSERT(de::abs(m_lookupSpec.minCoord[1]) < de::abs(m_lookupSpec.minCoord[2]) && de::abs(m_lookupSpec.maxCoord[1]) < de::abs(m_lookupSpec.minCoord[2]));
+
+ tcu::CubeFaceFloatCoords c00 = tcu::getCubeFaceCoords(Vec3(m_lookupSpec.minCoord[0]*proj, m_lookupSpec.minCoord[1]*proj, m_lookupSpec.minCoord[2]*proj));
+ tcu::CubeFaceFloatCoords c10 = tcu::getCubeFaceCoords(Vec3(m_lookupSpec.maxCoord[0]*proj, m_lookupSpec.minCoord[1]*proj, m_lookupSpec.minCoord[2]*proj));
+ tcu::CubeFaceFloatCoords c01 = tcu::getCubeFaceCoords(Vec3(m_lookupSpec.minCoord[0]*proj, m_lookupSpec.maxCoord[1]*proj, m_lookupSpec.minCoord[2]*proj));
+ float dudx = (c10.s - c00.s)*(float)m_textureSpec.width / (float)viewportSize[0];
+ float dvdy = (c01.t - c00.t)*(float)m_textureSpec.height / (float)viewportSize[1];
+ lookupParams.lod = computeLodFromDerivates(DEFAULT_LOD_MODE, dudx, 0.0f, 0.0f, dvdy);
+
+ // Append to texture list.
+ m_textures.push_back(TextureBindingSp(new TextureBinding(textureCubeArray.release(), m_textureSpec.sampler)));
+ break;
+ }
+
default:
DE_ASSERT(DE_FALSE);
}
@@ -890,17 +1157,24 @@
bool isGrad = functionHasGrad(function);
bool isShadow = m_textureSpec.sampler.compare != tcu::Sampler::COMPAREMODE_NONE;
bool is2DProj4 = !isShadow && m_textureSpec.type == TEXTURETYPE_2D && (function == FUNCTION_TEXTUREPROJ || function == FUNCTION_TEXTUREPROJLOD || function == FUNCTION_TEXTUREPROJGRAD);
+ bool is1DProj4 = !isShadow && m_textureSpec.type == TEXTURETYPE_1D && (function == FUNCTION_TEXTUREPROJ || function == FUNCTION_TEXTUREPROJLOD || function == FUNCTION_TEXTUREPROJGRAD);
bool isIntCoord = function == FUNCTION_TEXELFETCH;
bool hasLodBias = functionHasLod(m_lookupSpec.function) || m_lookupSpec.useBias;
- int texCoordComps = m_textureSpec.type == TEXTURETYPE_2D ? 2 : 3;
- int extraCoordComps = (isProj ? (is2DProj4 ? 2 : 1) : 0) + (isShadow ? 1 : 0);
- glu::DataType coordType = glu::getDataTypeFloatVec(texCoordComps+extraCoordComps);
+ int texCoordComps = m_textureSpec.type == TEXTURETYPE_1D ? 1 :
+ m_textureSpec.type == TEXTURETYPE_1D_ARRAY || m_textureSpec.type == TEXTURETYPE_2D ? 2 :
+ m_textureSpec.type == TEXTURETYPE_CUBE_ARRAY ? 4 :
+ 3;
+ int extraCoordComps = (isProj ? (is2DProj4 ? 2 : (is1DProj4 ? 3 : 1)) : 0) + (isShadow ? (m_textureSpec.type == TEXTURETYPE_1D ? 2 : 1) : 0);
+ const bool isCubeArrayShadow = isShadow && m_textureSpec.type == TEXTURETYPE_CUBE_ARRAY;
+ glu::DataType coordType = glu::getDataTypeFloatVec(isCubeArrayShadow ? 4 : texCoordComps+extraCoordComps);
glu::Precision coordPrec = glu::PRECISION_HIGHP;
const char* coordTypeName = glu::getDataTypeName(coordType);
const char* coordPrecName = glu::getPrecisionName(coordPrec);
tcu::TextureFormat texFmt = glu::mapGLInternalFormat(m_textureSpec.format);
glu::DataType samplerType = glu::TYPE_LAST;
- glu::DataType gradType = (m_textureSpec.type == TEXTURETYPE_CUBE_MAP || m_textureSpec.type == TEXTURETYPE_3D) ? glu::TYPE_FLOAT_VEC3 : glu::TYPE_FLOAT_VEC2;
+ glu::DataType gradType = m_textureSpec.type == TEXTURETYPE_1D || m_textureSpec.type == TEXTURETYPE_1D_ARRAY ? glu::TYPE_FLOAT :
+ m_textureSpec.type == TEXTURETYPE_3D || m_textureSpec.type == TEXTURETYPE_CUBE_MAP || m_textureSpec.type == TEXTURETYPE_CUBE_ARRAY ? glu::TYPE_FLOAT_VEC3 :
+ glu::TYPE_FLOAT_VEC2;
const char* gradTypeName = glu::getDataTypeName(gradType);
const char* baseFuncName = DE_NULL;
@@ -908,10 +1182,13 @@
switch (m_textureSpec.type)
{
- case TEXTURETYPE_2D: samplerType = isShadow ? glu::TYPE_SAMPLER_2D_SHADOW : glu::getSampler2DType(texFmt); break;
- case TEXTURETYPE_CUBE_MAP: samplerType = isShadow ? glu::TYPE_SAMPLER_CUBE_SHADOW : glu::getSamplerCubeType(texFmt); break;
- case TEXTURETYPE_2D_ARRAY: samplerType = isShadow ? glu::TYPE_SAMPLER_2D_ARRAY_SHADOW : glu::getSampler2DArrayType(texFmt); break;
- case TEXTURETYPE_3D: DE_ASSERT(!isShadow); samplerType = glu::getSampler3DType(texFmt); break;
+ case TEXTURETYPE_2D: samplerType = isShadow ? glu::TYPE_SAMPLER_2D_SHADOW : glu::getSampler2DType(texFmt); break;
+ case TEXTURETYPE_CUBE_MAP: samplerType = isShadow ? glu::TYPE_SAMPLER_CUBE_SHADOW : glu::getSamplerCubeType(texFmt); break;
+ case TEXTURETYPE_2D_ARRAY: samplerType = isShadow ? glu::TYPE_SAMPLER_2D_ARRAY_SHADOW : glu::getSampler2DArrayType(texFmt); break;
+ case TEXTURETYPE_3D: DE_ASSERT(!isShadow); samplerType = glu::getSampler3DType(texFmt); break;
+ case TEXTURETYPE_1D: samplerType = isShadow ? glu::TYPE_SAMPLER_1D_SHADOW : glu::getSampler1DType(texFmt); break;
+ case TEXTURETYPE_1D_ARRAY: samplerType = isShadow ? glu::TYPE_SAMPLER_1D_ARRAY_SHADOW : glu::getSampler1DArrayType(texFmt); break;
+ case TEXTURETYPE_CUBE_ARRAY: samplerType = isShadow ? glu::TYPE_SAMPLER_CUBE_ARRAY_SHADOW : glu::getSamplerCubeArrayType(texFmt); break;
default:
DE_ASSERT(DE_FALSE);
}
@@ -920,12 +1197,15 @@
{
case FUNCTION_TEXTURE: baseFuncName = "texture"; break;
case FUNCTION_TEXTUREPROJ: baseFuncName = "textureProj"; break;
+ case FUNCTION_TEXTUREPROJ2: baseFuncName = "textureProj"; break;
case FUNCTION_TEXTUREPROJ3: baseFuncName = "textureProj"; break;
case FUNCTION_TEXTURELOD: baseFuncName = "textureLod"; break;
case FUNCTION_TEXTUREPROJLOD: baseFuncName = "textureProjLod"; break;
+ case FUNCTION_TEXTUREPROJLOD2: baseFuncName = "textureProjLod"; break;
case FUNCTION_TEXTUREPROJLOD3: baseFuncName = "textureProjLod"; break;
case FUNCTION_TEXTUREGRAD: baseFuncName = "textureGrad"; break;
case FUNCTION_TEXTUREPROJGRAD: baseFuncName = "textureProjGrad"; break;
+ case FUNCTION_TEXTUREPROJGRAD2: baseFuncName = "textureProjGrad"; break;
case FUNCTION_TEXTUREPROJGRAD3: baseFuncName = "textureProjGrad"; break;
case FUNCTION_TEXELFETCH: baseFuncName = "texelFetch"; break;
default:
@@ -935,8 +1215,29 @@
std::ostringstream vert;
std::ostringstream frag;
std::ostringstream& op = isVtxCase ? vert : frag;
+ glu::GLSLVersion version = glu::GLSL_VERSION_LAST;
- vert << "#version 310 es\n"
+ switch (m_textureSpec.type)
+ {
+ case TEXTURETYPE_2D:
+ case TEXTURETYPE_3D:
+ case TEXTURETYPE_CUBE_MAP:
+ case TEXTURETYPE_2D_ARRAY:
+ version = glu::GLSL_VERSION_310_ES;
+ break;
+
+ case TEXTURETYPE_1D:
+ case TEXTURETYPE_1D_ARRAY:
+ case TEXTURETYPE_CUBE_ARRAY:
+ version = glu::GLSL_VERSION_420;
+ break;
+
+ default:
+ DE_ASSERT(DE_FALSE);
+ break;
+ }
+
+ vert << glu::getGLSLVersionDeclaration(version) << "\n"
<< "layout(location = 0) in highp vec4 a_position;\n"
<< "layout(location = 4) in " << coordPrecName << " " << coordTypeName << " a_in0;\n";
@@ -948,7 +1249,7 @@
else if (hasLodBias)
vert << "layout(location = 5) in " << coordPrecName << " float a_in1;\n";
- frag << "#version 310 es\n"
+ frag << glu::getGLSLVersionDeclaration(version) << "\n"
<< "layout(location = 0) out mediump vec4 o_color;\n";
if (isVtxCase)
@@ -980,6 +1281,11 @@
<< "layout(set = 0, binding = 1) uniform buf0 { highp vec4 u_scale; };\n"
<< "layout(set = 0, binding = 2) uniform buf1 { highp vec4 u_bias; };\n";
+ if (version != glu::GLSL_VERSION_310_ES)
+ vert << "out gl_PerVertex {\n"
+ << "\tvec4 gl_Position;\n"
+ << "};\n";
+
vert << "\nvoid main()\n{\n"
<< "\tgl_Position = a_position;\n";
frag << "\nvoid main()\n{\n";
@@ -1002,7 +1308,7 @@
op << "(u_sampler, ";
if (isIntCoord)
- op << "ivec" << (texCoordComps+extraCoordComps) << "(";
+ op << glu::getDataTypeName(glu::getDataTypeIntVec(texCoordComps+extraCoordComps)) << "(";
op << texCoord;
@@ -1022,9 +1328,10 @@
if (m_lookupSpec.useOffset)
{
- int offsetComps = m_textureSpec.type == TEXTURETYPE_3D ? 3 : 2;
+ int offsetComps = m_textureSpec.type == TEXTURETYPE_1D || m_textureSpec.type == TEXTURETYPE_1D_ARRAY ? 1 :
+ m_textureSpec.type == TEXTURETYPE_3D ? 3 : 2;
- op << ", ivec" << offsetComps << "(";
+ op << ", " << glu::getDataTypeName(glu::getDataTypeIntVec(offsetComps)) << "(";
for (int ndx = 0; ndx < offsetComps; ndx++)
{
if (ndx != 0)
@@ -1034,6 +1341,9 @@
op << ")";
}
+ if (isCubeArrayShadow && m_lookupSpec.function == FUNCTION_TEXTURE)
+ op << ", " << texCoord << ".w";
+
if (m_lookupSpec.useBias)
op << ", " << lodBias;
@@ -1079,17 +1389,6 @@
QUERYFUNCTION_LAST
};
-static void checkDeviceFeatures (Context& context, TextureType textureType)
-{
- if (textureType == TEXTURETYPE_CUBE_ARRAY)
- {
- const vk::VkPhysicalDeviceFeatures& deviceFeatures = context.getDeviceFeatures();
-
- if (!deviceFeatures.imageCubeArray)
- TCU_THROW(NotSupportedError, "Cube array is not supported");
- }
-}
-
class TextureQueryInstance : public ShaderRenderCaseInstance
{
public:
@@ -2791,18 +3090,25 @@
for (int ndx = 0; ndx < numCases; ndx++)
{
- std::string name = cases[ndx].name;
+ std::string name = cases[ndx].name;
+ bool sparseSupported = !functionHasProj(cases[ndx].lookupSpec.function) &&
+ TEXTURETYPE_1D != cases[ndx].texSpec.type &&
+ TEXTURETYPE_1D_ARRAY != cases[ndx].texSpec.type &&
+ TEXTURETYPE_CUBE_ARRAY != cases[ndx].texSpec.type;
+
if (cases[ndx].flags & VERTEX)
{
- if (!functionHasProj(cases[ndx].lookupSpec.function))
+ if (sparseSupported)
group->addChild(new SparseShaderTextureFunctionCase(parent->getTestContext(), ("sparse_" + name + "_vertex"), "", cases[ndx].lookupSpec, cases[ndx].texSpec, cases[ndx].evalFunc, true ));
+
group->addChild(new ShaderTextureFunctionCase(parent->getTestContext(), (name + "_vertex"), "", cases[ndx].lookupSpec, cases[ndx].texSpec, cases[ndx].evalFunc, true ));
}
if (cases[ndx].flags & FRAGMENT)
{
- if (!functionHasProj(cases[ndx].lookupSpec.function))
+ if (sparseSupported)
group->addChild(new SparseShaderTextureFunctionCase(parent->getTestContext(), ("sparse_" + name + "_fragment"), "", cases[ndx].lookupSpec, cases[ndx].texSpec, cases[ndx].evalFunc, false));
+
group->addChild(new ShaderTextureFunctionCase(parent->getTestContext(), (name + "_fragment"), "", cases[ndx].lookupSpec, cases[ndx].texSpec, cases[ndx].evalFunc, false));
}
}
@@ -2918,6 +3224,11 @@
static const TextureSpec tex1DShadow (TEXTURETYPE_1D, GL_DEPTH_COMPONENT16, 256, 1, 1, 1, samplerShadowNoMipmap);
static const TextureSpec tex1DMipmapShadow (TEXTURETYPE_1D, GL_DEPTH_COMPONENT16, 256, 1, 1, 9, samplerShadowMipmap);
+ static const TextureSpec tex1DTexelFetchFixed (TEXTURETYPE_1D, GL_RGBA8, 256, 1, 1, 9, samplerTexelFetch);
+ static const TextureSpec tex1DTexelFetchFloat (TEXTURETYPE_1D, GL_RGBA16F, 256, 1, 1, 9, samplerTexelFetch);
+ static const TextureSpec tex1DTexelFetchInt (TEXTURETYPE_1D, GL_RGBA8I, 256, 1, 1, 9, samplerTexelFetch);
+ static const TextureSpec tex1DTexelFetchUint (TEXTURETYPE_1D, GL_RGBA8UI, 256, 1, 1, 9, samplerTexelFetch);
+
static const TextureSpec tex1DArrayFixed (TEXTURETYPE_1D_ARRAY, GL_RGBA8, 256, 1, 4, 1, samplerLinearNoMipmap);
static const TextureSpec tex1DArrayFloat (TEXTURETYPE_1D_ARRAY, GL_RGBA16F, 256, 1, 4, 1, samplerLinearNoMipmap);
static const TextureSpec tex1DArrayInt (TEXTURETYPE_1D_ARRAY, GL_RGBA8I, 256, 1, 4, 1, samplerNearestNoMipmap);
@@ -2930,17 +3241,22 @@
static const TextureSpec tex1DArrayShadow (TEXTURETYPE_1D_ARRAY, GL_DEPTH_COMPONENT16, 256, 1, 4, 1, samplerShadowNoMipmap);
static const TextureSpec tex1DArrayMipmapShadow (TEXTURETYPE_1D_ARRAY, GL_DEPTH_COMPONENT16, 256, 1, 4, 9, samplerShadowMipmap);
- static const TextureSpec texCubeArrayFixed (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8, 256, 256, 12, 1, samplerLinearNoMipmap);
- static const TextureSpec texCubeArrayFloat (TEXTURETYPE_CUBE_ARRAY, GL_RGBA16F, 256, 256, 12, 1, samplerLinearNoMipmap);
- static const TextureSpec texCubeArrayInt (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8I, 256, 256, 12, 1, samplerNearestNoMipmap);
- static const TextureSpec texCubeArrayUint (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8UI, 256, 256, 12, 1, samplerNearestNoMipmap);
- static const TextureSpec texCubeArrayMipmapFixed (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8, 256, 256, 12, 9, samplerLinearMipmap);
- static const TextureSpec texCubeArrayMipmapFloat (TEXTURETYPE_CUBE_ARRAY, GL_RGBA16F, 128, 128, 12, 8, samplerLinearMipmap);
- static const TextureSpec texCubeArrayMipmapInt (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8I, 256, 256, 12, 9, samplerNearestMipmap);
- static const TextureSpec texCubeArrayMipmapUint (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8UI, 256, 256, 12, 9, samplerNearestMipmap);
+ static const TextureSpec tex1DArrayTexelFetchFixed (TEXTURETYPE_1D_ARRAY, GL_RGBA8, 256, 1, 4, 9, samplerTexelFetch);
+ static const TextureSpec tex1DArrayTexelFetchFloat (TEXTURETYPE_1D_ARRAY, GL_RGBA16F, 256, 1, 4, 9, samplerTexelFetch);
+ static const TextureSpec tex1DArrayTexelFetchInt (TEXTURETYPE_1D_ARRAY, GL_RGBA8I, 256, 1, 4, 9, samplerTexelFetch);
+ static const TextureSpec tex1DArrayTexelFetchUint (TEXTURETYPE_1D_ARRAY, GL_RGBA8UI, 256, 1, 4, 9, samplerTexelFetch);
- static const TextureSpec texCubeArrayShadow (TEXTURETYPE_CUBE_ARRAY, GL_DEPTH_COMPONENT16, 256, 256, 12, 1, samplerShadowNoMipmap);
- static const TextureSpec texCubeArrayMipmapShadow (TEXTURETYPE_CUBE_ARRAY, GL_DEPTH_COMPONENT16, 256, 256, 12, 9, samplerShadowMipmap);
+ static const TextureSpec texCubeArrayFixed (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8, 64, 64, 12, 1, samplerLinearNoMipmap);
+ static const TextureSpec texCubeArrayFloat (TEXTURETYPE_CUBE_ARRAY, GL_RGBA16F, 64, 64, 12, 1, samplerLinearNoMipmap);
+ static const TextureSpec texCubeArrayInt (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8I, 64, 64, 12, 1, samplerNearestNoMipmap);
+ static const TextureSpec texCubeArrayUint (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8UI, 64, 64, 12, 1, samplerNearestNoMipmap);
+ static const TextureSpec texCubeArrayMipmapFixed (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8, 64, 64, 12, 7, samplerLinearMipmap);
+ static const TextureSpec texCubeArrayMipmapFloat (TEXTURETYPE_CUBE_ARRAY, GL_RGBA16F, 64, 64, 12, 7, samplerLinearMipmap);
+ static const TextureSpec texCubeArrayMipmapInt (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8I, 64, 64, 12, 7, samplerNearestMipmap);
+ static const TextureSpec texCubeArrayMipmapUint (TEXTURETYPE_CUBE_ARRAY, GL_RGBA8UI, 64, 64, 12, 7, samplerNearestMipmap);
+
+ static const TextureSpec texCubeArrayShadow (TEXTURETYPE_CUBE_ARRAY, GL_DEPTH_COMPONENT16, 64, 64, 12, 1, samplerShadowNoMipmap);
+ static const TextureSpec texCubeArrayMipmapShadow (TEXTURETYPE_CUBE_ARRAY, GL_DEPTH_COMPONENT16, 64, 64, 12, 7, samplerShadowMipmap);
// texture() cases
static const TexFuncCaseSpec textureCases[] =
@@ -3002,6 +3318,48 @@
CASE_SPEC(isampler3d_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex3DMipmapInt, evalTexture3DBias, FRAGMENT),
CASE_SPEC(usampler3d_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex3DMipmapUint, evalTexture3DBias, FRAGMENT),
+ CASE_SPEC(sampler1d_fixed, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DFixed, evalTexture1D, VERTEX),
+ CASE_SPEC(sampler1d_fixed, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapFixed, evalTexture1D, FRAGMENT),
+ CASE_SPEC(sampler1d_float, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DFloat, evalTexture1D, VERTEX),
+ CASE_SPEC(sampler1d_float, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapFloat, evalTexture1D, FRAGMENT),
+ CASE_SPEC(isampler1d, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DInt, evalTexture1D, VERTEX),
+ CASE_SPEC(isampler1d, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapInt, evalTexture1D, FRAGMENT),
+ CASE_SPEC(usampler1d, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DUint, evalTexture1D, VERTEX),
+ CASE_SPEC(usampler1d, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapUint, evalTexture1D, FRAGMENT),
+
+ CASE_SPEC(sampler1d_bias_fixed, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapFixed, evalTexture1DBias, FRAGMENT),
+ CASE_SPEC(sampler1d_bias_float, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapFloat, evalTexture1DBias, FRAGMENT),
+ CASE_SPEC(isampler1d_bias, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapInt, evalTexture1DBias, FRAGMENT),
+ CASE_SPEC(usampler1d_bias, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapUint, evalTexture1DBias, FRAGMENT),
+
+ CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayFixed, evalTexture1DArray, VERTEX),
+ CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayMipmapFixed, evalTexture1DArray, FRAGMENT),
+ CASE_SPEC(sampler1darray_float, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayFloat, evalTexture1DArray, VERTEX),
+ CASE_SPEC(sampler1darray_float, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayMipmapFloat, evalTexture1DArray, FRAGMENT),
+ CASE_SPEC(isampler1darray, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayInt, evalTexture1DArray, VERTEX),
+ CASE_SPEC(isampler1darray, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayMipmapInt, evalTexture1DArray, FRAGMENT),
+ CASE_SPEC(usampler1darray, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayUint, evalTexture1DArray, VERTEX),
+ CASE_SPEC(usampler1darray, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayMipmapUint, evalTexture1DArray, FRAGMENT),
+
+ CASE_SPEC(sampler1darray_bias_fixed, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DArrayMipmapFixed, evalTexture1DArrayBias, FRAGMENT),
+ CASE_SPEC(sampler1darray_bias_float, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DArrayMipmapFloat, evalTexture1DArrayBias, FRAGMENT),
+ CASE_SPEC(isampler1darray_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DArrayMipmapInt, evalTexture1DArrayBias, FRAGMENT),
+ CASE_SPEC(usampler1darray_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DArrayMipmapUint, evalTexture1DArrayBias, FRAGMENT),
+
+ CASE_SPEC(samplercubearray_fixed, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), texCubeArrayFixed, evalTextureCubeArray, VERTEX),
+ CASE_SPEC(samplercubearray_fixed, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), texCubeArrayMipmapFixed, evalTextureCubeArray, FRAGMENT),
+ CASE_SPEC(samplercubearray_float, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), texCubeArrayFloat, evalTextureCubeArray, VERTEX),
+ CASE_SPEC(samplercubearray_float, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), texCubeArrayMipmapFloat, evalTextureCubeArray, FRAGMENT),
+ CASE_SPEC(isamplercubearray, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), texCubeArrayInt, evalTextureCubeArray, VERTEX),
+ CASE_SPEC(isamplercubearray, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), texCubeArrayMipmapInt, evalTextureCubeArray, FRAGMENT),
+ CASE_SPEC(usamplercubearray, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), texCubeArrayUint, evalTextureCubeArray, VERTEX),
+ CASE_SPEC(usamplercubearray, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), texCubeArrayMipmapUint, evalTextureCubeArray, FRAGMENT),
+
+ CASE_SPEC(samplercubearray_bias_fixed, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), texCubeArrayMipmapFixed, evalTextureCubeArrayBias, FRAGMENT),
+ CASE_SPEC(samplercubearray_bias_float, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), texCubeArrayMipmapFloat, evalTextureCubeArrayBias, FRAGMENT),
+ CASE_SPEC(isamplercubearray_bias, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), texCubeArrayMipmapInt, evalTextureCubeArrayBias, FRAGMENT),
+ CASE_SPEC(usamplercubearray_bias, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), texCubeArrayMipmapUint, evalTextureCubeArrayBias, FRAGMENT),
+
CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex2DShadow, evalTexture2DShadow, VERTEX),
CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadow, FRAGMENT),
CASE_SPEC(sampler2dshadow_bias, FUNCTION_TEXTURE, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowBias, FRAGMENT),
@@ -3011,10 +3369,17 @@
CASE_SPEC(samplercubeshadow_bias, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, 1.01f, 0.0f), Vec4( 1.0f, 1.0f, 1.01f, 1.0f), true, -2.0f, 2.0f, false, IVec3(0), texCubeMipmapShadow, evalTextureCubeShadowBias, FRAGMENT),
CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTURE, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), false, 0.0f, 0.0f, false, IVec3(0), tex2DArrayShadow, evalTexture2DArrayShadow, VERTEX),
- CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTURE, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), false, 0.0f, 0.0f, false, IVec3(0), tex2DArrayMipmapShadow, evalTexture2DArrayShadow, FRAGMENT)
+ CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTURE, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), false, 0.0f, 0.0f, false, IVec3(0), tex2DArrayMipmapShadow, evalTexture2DArrayShadow, FRAGMENT),
- // Not in spec.
-// CASE_SPEC(sampler2darrayshadow_bias, (FUNCTION_TEXTURE, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), true, -2.0f, 2.0f, Vec2(0.0f), Vec2(0.0f), false, IVec3(0)), tex2DArrayMipmapShadow, evalTexture2DArrayShadowBias, FRAGMENT)
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DShadow, evalTexture1DShadow, VERTEX),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapShadow, evalTexture1DShadow, FRAGMENT),
+ CASE_SPEC(sampler1dshadow_bias, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapShadow, evalTexture1DShadowBias, FRAGMENT),
+
+ CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayShadow, evalTexture1DArrayShadow, VERTEX),
+ CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayMipmapShadow, evalTexture1DArrayShadow, FRAGMENT),
+ CASE_SPEC(sampler1darrayshadow_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DArrayMipmapShadow, evalTexture1DArrayShadowBias, FRAGMENT),
+
+ CASE_SPEC(samplercubearrayshadow, FUNCTION_TEXTURE, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), texCubeArrayMipmapShadow, evalTextureCubeArrayShadow, FRAGMENT),
};
createCaseGroup(this, "texture", "texture() Tests", textureCases, DE_LENGTH_OF_ARRAY(textureCases));
@@ -3065,9 +3430,45 @@
CASE_SPEC(isampler3d_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), true, -2.0f, 2.0f, true, IVec3(3, -8, 7), tex3DInt, evalTexture3DOffsetBias, FRAGMENT),
CASE_SPEC(usampler3d_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 7, 3), tex3DUint, evalTexture3DOffsetBias, FRAGMENT),
- CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 7, 0), tex2DShadow, evalTexture2DShadowOffset, VERTEX),
- CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(7, -8, 0), tex2DMipmapShadow, evalTexture2DShadowOffset, FRAGMENT),
- CASE_SPEC(sampler2dshadow_bias, FUNCTION_TEXTURE, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 7, 0), tex2DShadow, evalTexture2DShadowOffsetBias, FRAGMENT)
+ CASE_SPEC(sampler1d_fixed, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DFixed, evalTexture1DOffset, VERTEX),
+ CASE_SPEC(sampler1d_fixed, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DMipmapFixed, evalTexture1DOffset, FRAGMENT),
+ CASE_SPEC(sampler1d_float, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DFloat, evalTexture1DOffset, VERTEX),
+ CASE_SPEC(sampler1d_float, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DMipmapFloat, evalTexture1DOffset, FRAGMENT),
+ CASE_SPEC(isampler1d, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DInt, evalTexture1DOffset, VERTEX),
+ CASE_SPEC(isampler1d, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DMipmapInt, evalTexture1DOffset, FRAGMENT),
+ CASE_SPEC(usampler1d, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DUint, evalTexture1DOffset, VERTEX),
+ CASE_SPEC(usampler1d, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DMipmapUint, evalTexture1DOffset, FRAGMENT),
+
+ CASE_SPEC(sampler1d_bias_fixed, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DFixed, evalTexture1DOffsetBias, FRAGMENT),
+ CASE_SPEC(sampler1d_bias_float, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3( 7, 0, 0), tex1DFloat, evalTexture1DOffsetBias, FRAGMENT),
+ CASE_SPEC(isampler1d_bias, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DInt, evalTexture1DOffsetBias, FRAGMENT),
+ CASE_SPEC(usampler1d_bias, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3( 7, 0, 0), tex1DUint, evalTexture1DOffsetBias, FRAGMENT),
+
+ CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DArrayFixed, evalTexture1DArrayOffset, VERTEX),
+ CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DArrayMipmapFixed, evalTexture1DArrayOffset, FRAGMENT),
+ CASE_SPEC(sampler1darray_float, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DArrayFloat, evalTexture1DArrayOffset, VERTEX),
+ CASE_SPEC(sampler1darray_float, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DArrayMipmapFloat, evalTexture1DArrayOffset, FRAGMENT),
+ CASE_SPEC(isampler1darray, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DArrayInt, evalTexture1DArrayOffset, VERTEX),
+ CASE_SPEC(isampler1darray, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DArrayMipmapInt, evalTexture1DArrayOffset, FRAGMENT),
+ CASE_SPEC(usampler1darray, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DArrayUint, evalTexture1DArrayOffset, VERTEX),
+ CASE_SPEC(usampler1darray, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DArrayMipmapUint, evalTexture1DArrayOffset, FRAGMENT),
+
+ CASE_SPEC(sampler1darray_bias_fixed, FUNCTION_TEXTURE, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DArrayFixed, evalTexture1DArrayOffsetBias, FRAGMENT),
+ CASE_SPEC(sampler1darray_bias_float, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3( 7, 0, 0), tex1DArrayFloat, evalTexture1DArrayOffsetBias, FRAGMENT),
+ CASE_SPEC(isampler1darray_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DArrayInt, evalTexture1DArrayOffsetBias, FRAGMENT),
+ CASE_SPEC(usampler1darray_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3( 7, 0, 0), tex1DArrayUint, evalTexture1DArrayOffsetBias, FRAGMENT),
+
+ CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 7, 0), tex2DShadow, evalTexture2DShadowOffset, VERTEX),
+ CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(7, -8, 0), tex2DMipmapShadow, evalTexture2DShadowOffset, FRAGMENT),
+ CASE_SPEC(sampler2dshadow_bias, FUNCTION_TEXTURE, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 7, 0), tex2DShadow, evalTexture2DShadowOffsetBias, FRAGMENT),
+ CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTURE, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), false, 0.0f, 0.0f, true, IVec3(-8, 7, 0), tex2DArrayShadow, evalTexture2DArrayShadowOffset, VERTEX),
+ CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTURE, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), false, 0.0f, 0.0f, true, IVec3(7, -8, 0), tex2DArrayMipmapShadow, evalTexture2DArrayShadowOffset, FRAGMENT),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DShadow, evalTexture1DShadowOffset, VERTEX),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DMipmapShadow, evalTexture1DShadowOffset, FRAGMENT),
+ CASE_SPEC(sampler1dshadow_bias, FUNCTION_TEXTURE, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DShadow, evalTexture1DShadowOffsetBias, FRAGMENT),
+ CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DArrayShadow, evalTexture1DArrayShadowOffset, VERTEX),
+ CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3( 7, 0, 0), tex1DArrayMipmapShadow, evalTexture1DArrayShadowOffset, FRAGMENT),
+ CASE_SPEC(sampler1darrayshadow_bias, FUNCTION_TEXTURE, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DArrayShadow, evalTexture1DArrayShadowOffsetBias, FRAGMENT),
};
createCaseGroup(this, "textureoffset", "textureOffset() Tests", textureOffsetCases, DE_LENGTH_OF_ARRAY(textureOffsetCases));
@@ -3118,9 +3519,40 @@
CASE_SPEC(isampler3d_bias, FUNCTION_TEXTUREPROJ, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), true, -2.0f, 2.0f, false, IVec3(0), tex3DMipmapInt, evalTexture3DProjBias, FRAGMENT),
CASE_SPEC(usampler3d_bias, FUNCTION_TEXTUREPROJ, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), true, -2.0f, 2.0f, false, IVec3(0), tex3DMipmapUint, evalTexture3DProjBias, FRAGMENT),
+ CASE_SPEC(sampler1d_vec2_fixed, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DFixed, evalTexture1DProj2, VERTEX),
+ CASE_SPEC(sampler1d_vec2_fixed, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapFixed, evalTexture1DProj2, FRAGMENT),
+ CASE_SPEC(sampler1d_vec2_float, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DFloat, evalTexture1DProj2, VERTEX),
+ CASE_SPEC(sampler1d_vec2_float, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapFloat, evalTexture1DProj2, FRAGMENT),
+ CASE_SPEC(isampler1d_vec2, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DInt, evalTexture1DProj2, VERTEX),
+ CASE_SPEC(isampler1d_vec2, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapInt, evalTexture1DProj2, FRAGMENT),
+ CASE_SPEC(usampler1d_vec2, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DUint, evalTexture1DProj2, VERTEX),
+ CASE_SPEC(usampler1d_vec2, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapUint, evalTexture1DProj2, FRAGMENT),
+
+ CASE_SPEC(sampler1d_vec2_bias_fixed, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapFixed, evalTexture1DProj2Bias, FRAGMENT),
+ CASE_SPEC(sampler1d_vec2_bias_float, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapFloat, evalTexture1DProj2Bias, FRAGMENT),
+ CASE_SPEC(isampler1d_vec2_bias, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapInt, evalTexture1DProj2Bias, FRAGMENT),
+ CASE_SPEC(usampler1d_vec2_bias, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapUint, evalTexture1DProj2Bias, FRAGMENT),
+
+ CASE_SPEC(sampler1d_vec4_fixed, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DFixed, evalTexture1DProj, VERTEX),
+ CASE_SPEC(sampler1d_vec4_fixed, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapFixed, evalTexture1DProj, FRAGMENT),
+ CASE_SPEC(sampler1d_vec4_float, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DFloat, evalTexture1DProj, VERTEX),
+ CASE_SPEC(sampler1d_vec4_float, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapFloat, evalTexture1DProj, FRAGMENT),
+ CASE_SPEC(isampler1d_vec4, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DInt, evalTexture1DProj, VERTEX),
+ CASE_SPEC(isampler1d_vec4, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapInt, evalTexture1DProj, FRAGMENT),
+ CASE_SPEC(usampler1d_vec4, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DUint, evalTexture1DProj, VERTEX),
+ CASE_SPEC(usampler1d_vec4, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapUint, evalTexture1DProj, FRAGMENT),
+
+ CASE_SPEC(sampler1d_vec4_bias_fixed, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapFixed, evalTexture1DProjBias, FRAGMENT),
+ CASE_SPEC(sampler1d_vec4_bias_float, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapFloat, evalTexture1DProjBias, FRAGMENT),
+ CASE_SPEC(isampler1d_vec4_bias, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapInt, evalTexture1DProjBias, FRAGMENT),
+ CASE_SPEC(usampler1d_vec4_bias, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapUint, evalTexture1DProjBias, FRAGMENT),
+
CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex2DShadow, evalTexture2DShadowProj, VERTEX),
CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowProj, FRAGMENT),
- CASE_SPEC(sampler2dshadow_bias, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowProjBias, FRAGMENT)
+ CASE_SPEC(sampler2dshadow_bias, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowProjBias, FRAGMENT),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.0f, 0.0f, 1.5f), Vec4(-2.25f, 0.0f, 1.5f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DShadow, evalTexture1DShadowProj, VERTEX),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.0f, 0.0f, 1.5f), Vec4(-2.25f, 0.0f, 1.5f, 1.5f), false, 0.0f, 0.0f, false, IVec3(0), tex1DMipmapShadow, evalTexture1DShadowProj, FRAGMENT),
+ CASE_SPEC(sampler1dshadow_bias, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.0f, 0.0f, 1.5f), Vec4(-2.25f, 0.0f, 1.5f, 1.5f), true, -2.0f, 2.0f, false, IVec3(0), tex1DMipmapShadow, evalTexture1DShadowProjBias, FRAGMENT),
};
createCaseGroup(this, "textureproj", "textureProj() Tests", textureProjCases, DE_LENGTH_OF_ARRAY(textureProjCases));
@@ -3171,9 +3603,40 @@
CASE_SPEC(isampler3d_bias, FUNCTION_TEXTUREPROJ, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), true, -2.0f, 2.0f, true, IVec3(3, -8, 7), tex3DInt, evalTexture3DProjOffsetBias, FRAGMENT),
CASE_SPEC(usampler3d_bias, FUNCTION_TEXTUREPROJ, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), true, -2.0f, 2.0f, true, IVec3(-8, 7, 3), tex3DUint, evalTexture3DProjOffsetBias, FRAGMENT),
+ CASE_SPEC(sampler1d_vec2_fixed, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DFixed, evalTexture1DProj2Offset, VERTEX),
+ CASE_SPEC(sampler1d_vec2_fixed, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(7, 0, 0), tex1DMipmapFixed, evalTexture1DProj2Offset, FRAGMENT),
+ CASE_SPEC(sampler1d_vec2_float, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DFloat, evalTexture1DProj2Offset, VERTEX),
+ CASE_SPEC(sampler1d_vec2_float, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(7, 0, 0), tex1DMipmapFloat, evalTexture1DProj2Offset, FRAGMENT),
+ CASE_SPEC(isampler1d_vec2, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DInt, evalTexture1DProj2Offset, VERTEX),
+ CASE_SPEC(isampler1d_vec2, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(7, 0, 0), tex1DMipmapInt, evalTexture1DProj2Offset, FRAGMENT),
+ CASE_SPEC(usampler1d_vec2, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DUint, evalTexture1DProj2Offset, VERTEX),
+ CASE_SPEC(usampler1d_vec2, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(7, 0, 0), tex1DMipmapUint, evalTexture1DProj2Offset, FRAGMENT),
+
+ CASE_SPEC(sampler1d_vec2_bias_fixed, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DFixed, evalTexture1DProj2OffsetBias, FRAGMENT),
+ CASE_SPEC(sampler1d_vec2_bias_float, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(7, 0, 0), tex1DFloat, evalTexture1DProj2OffsetBias, FRAGMENT),
+ CASE_SPEC(isampler1d_vec2_bias, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DInt, evalTexture1DProj2OffsetBias, FRAGMENT),
+ CASE_SPEC(usampler1d_vec2_bias, FUNCTION_TEXTUREPROJ2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), true, -2.0f, 2.0f, true, IVec3(7, 0, 0), tex1DUint, evalTexture1DProj2OffsetBias, FRAGMENT),
+
+ CASE_SPEC(sampler1d_vec4_fixed, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DFixed, evalTexture1DProjOffset, VERTEX),
+ CASE_SPEC(sampler1d_vec4_fixed, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, true, IVec3(7, 0, 0), tex1DMipmapFixed, evalTexture1DProjOffset, FRAGMENT),
+ CASE_SPEC(sampler1d_vec4_float, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DFloat, evalTexture1DProjOffset, VERTEX),
+ CASE_SPEC(sampler1d_vec4_float, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, true, IVec3(7, 0, 0), tex1DMipmapFloat, evalTexture1DProjOffset, FRAGMENT),
+ CASE_SPEC(isampler1d_vec4, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DInt, evalTexture1DProjOffset, VERTEX),
+ CASE_SPEC(isampler1d_vec4, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, true, IVec3(7, 0, 0), tex1DMipmapInt, evalTexture1DProjOffset, FRAGMENT),
+ CASE_SPEC(usampler1d_vec4, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DUint, evalTexture1DProjOffset, VERTEX),
+ CASE_SPEC(usampler1d_vec4, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, 0.0f, 0.0f, true, IVec3(7, 0, 0), tex1DMipmapUint, evalTexture1DProjOffset, FRAGMENT),
+
+ CASE_SPEC(sampler1d_vec4_bias_fixed, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DFixed, evalTexture1DProjOffsetBias, FRAGMENT),
+ CASE_SPEC(sampler1d_vec4_bias_float, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), true, -2.0f, 2.0f, true, IVec3(7, 0, 0), tex1DFloat, evalTexture1DProjOffsetBias, FRAGMENT),
+ CASE_SPEC(isampler1d_vec4_bias, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DInt, evalTexture1DProjOffsetBias, FRAGMENT),
+ CASE_SPEC(usampler1d_vec4_bias, FUNCTION_TEXTUREPROJ, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), true, -2.0f, 2.0f, true, IVec3(7, 0, 0), tex1DUint, evalTexture1DProjOffsetBias, FRAGMENT),
+
CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), false, 0.0f, 0.0f, true, IVec3(-8, 7, 0), tex2DShadow, evalTexture2DShadowProjOffset, VERTEX),
CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), false, 0.0f, 0.0f, true, IVec3(7, -8, 0), tex2DMipmapShadow, evalTexture2DShadowProjOffset, FRAGMENT),
- CASE_SPEC(sampler2dshadow_bias, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), true, -2.0f, 2.0f, true, IVec3(-8, 7, 0), tex2DShadow, evalTexture2DShadowProjOffsetBias, FRAGMENT)
+ CASE_SPEC(sampler2dshadow_bias, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), true, -2.0f, 2.0f, true, IVec3(-8, 7, 0), tex2DShadow, evalTexture2DShadowProjOffsetBias, FRAGMENT),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.0f, 0.0f, 1.5f), Vec4(-2.25f, 0.0f, 1.5f, 1.5f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DShadow, evalTexture1DShadowProjOffset, VERTEX),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.0f, 0.0f, 1.5f), Vec4(-2.25f, 0.0f, 1.5f, 1.5f), false, 0.0f, 0.0f, true, IVec3(7, 0, 0), tex1DMipmapShadow, evalTexture1DShadowProjOffset, FRAGMENT),
+ CASE_SPEC(sampler1dshadow_bias, FUNCTION_TEXTUREPROJ, Vec4( 0.2f, 0.0f, 0.0f, 1.5f), Vec4(-2.25f, 0.0f, 1.5f, 1.5f), true, -2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DShadow, evalTexture1DShadowProjOffsetBias, FRAGMENT),
};
createCaseGroup(this, "textureprojoffset", "textureOffsetProj() Tests", textureProjOffsetCases, DE_LENGTH_OF_ARRAY(textureProjOffsetCases));
@@ -3201,7 +3664,24 @@
CASE_SPEC(isampler3d, FUNCTION_TEXTURELOD, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), false, -1.0f, 7.0f, false, IVec3(0), tex3DMipmapInt, evalTexture3DLod, BOTH),
CASE_SPEC(usampler3d, FUNCTION_TEXTURELOD, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), false, -1.0f, 7.0f, false, IVec3(0), tex3DMipmapUint, evalTexture3DLod, BOTH),
- CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURELOD, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowLod, BOTH)
+ CASE_SPEC(sampler1d_fixed, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapFixed, evalTexture1DLod, BOTH),
+ CASE_SPEC(sampler1d_float, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapFloat, evalTexture1DLod, BOTH),
+ CASE_SPEC(isampler1d, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapInt, evalTexture1DLod, BOTH),
+ CASE_SPEC(usampler1d, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapUint, evalTexture1DLod, BOTH),
+
+ CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DArrayMipmapFixed, evalTexture1DArrayLod, BOTH),
+ CASE_SPEC(sampler1darray_float, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DArrayMipmapFloat, evalTexture1DArrayLod, BOTH),
+ CASE_SPEC(isampler1darray, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DArrayMipmapInt, evalTexture1DArrayLod, BOTH),
+ CASE_SPEC(usampler1darray, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DArrayMipmapUint, evalTexture1DArrayLod, BOTH),
+
+ CASE_SPEC(samplercubearray_fixed, FUNCTION_TEXTURELOD, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), false, -1.0f, 7.0f, false, IVec3(0), texCubeArrayMipmapFixed, evalTextureCubeArrayLod, BOTH),
+ CASE_SPEC(samplercubearray_float, FUNCTION_TEXTURELOD, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), false, -1.0f, 7.0f, false, IVec3(0), texCubeArrayMipmapFloat, evalTextureCubeArrayLod, BOTH),
+ CASE_SPEC(isamplercubearray, FUNCTION_TEXTURELOD, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), false, -1.0f, 7.0f, false, IVec3(0), texCubeArrayMipmapInt, evalTextureCubeArrayLod, BOTH),
+ CASE_SPEC(usamplercubearray, FUNCTION_TEXTURELOD, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), false, -1.0f, 7.0f, false, IVec3(0), texCubeArrayMipmapUint, evalTextureCubeArrayLod, BOTH),
+
+ CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURELOD, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowLod, BOTH),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapShadow, evalTexture1DShadowLod, BOTH),
+ CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DArrayMipmapShadow, evalTexture1DArrayShadowLod, BOTH),
};
createCaseGroup(this, "texturelod", "textureLod() Tests", textureLodCases, DE_LENGTH_OF_ARRAY(textureLodCases));
@@ -3224,7 +3704,19 @@
CASE_SPEC(isampler3d, FUNCTION_TEXTURELOD, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), false, -1.0f, 7.0f, true, IVec3(3, -8, 7), tex3DMipmapInt, evalTexture3DLodOffset, BOTH),
CASE_SPEC(usampler3d, FUNCTION_TEXTURELOD, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), false, -1.0f, 7.0f, true, IVec3(-8, 7, 3), tex3DMipmapUint, evalTexture3DLodOffset, BOTH),
- CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURELOD, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(-8, 7, 0), tex2DMipmapShadow, evalTexture2DShadowLodOffset, BOTH)
+ CASE_SPEC(sampler1d_fixed, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(-8, 0, 0), tex1DMipmapFixed, evalTexture1DLodOffset, BOTH),
+ CASE_SPEC(sampler1d_float, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DMipmapFloat, evalTexture1DLodOffset, BOTH),
+ CASE_SPEC(isampler1d, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(-8, 0, 0), tex1DMipmapInt, evalTexture1DLodOffset, BOTH),
+ CASE_SPEC(usampler1d, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DMipmapUint, evalTexture1DLodOffset, BOTH),
+
+ CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(-8, 0, 0), tex1DArrayMipmapFixed, evalTexture1DArrayLodOffset, BOTH),
+ CASE_SPEC(sampler1darray_float, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DArrayMipmapFloat, evalTexture1DArrayLodOffset, BOTH),
+ CASE_SPEC(isampler1darray, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(-8, 0, 0), tex1DArrayMipmapInt, evalTexture1DArrayLodOffset, BOTH),
+ CASE_SPEC(usampler1darray, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DArrayMipmapUint, evalTexture1DArrayLodOffset, BOTH),
+
+ CASE_SPEC(sampler2dshadow, FUNCTION_TEXTURELOD, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(-8, 7, 0), tex2DMipmapShadow, evalTexture2DShadowLodOffset, BOTH),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTURELOD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(-8, 0, 0), tex1DMipmapShadow, evalTexture1DShadowLodOffset, BOTH),
+ CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTURELOD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DArrayMipmapShadow, evalTexture1DArrayShadowLodOffset, BOTH),
};
createCaseGroup(this, "texturelodoffset", "textureLodOffset() Tests", textureLodOffsetCases, DE_LENGTH_OF_ARRAY(textureLodOffsetCases));
@@ -3247,7 +3739,18 @@
CASE_SPEC(isampler3d, FUNCTION_TEXTUREPROJLOD, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), false, -1.0f, 7.0f, false, IVec3(0), tex3DMipmapInt, evalTexture3DProjLod, BOTH),
CASE_SPEC(usampler3d, FUNCTION_TEXTUREPROJLOD, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), false, -1.0f, 7.0f, false, IVec3(0), tex3DMipmapUint, evalTexture3DProjLod, BOTH),
- CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJLOD, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), false, -1.0f, 9.0f, false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowProjLod, BOTH)
+ CASE_SPEC(sampler1d_vec2_fixed, FUNCTION_TEXTUREPROJLOD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapFixed, evalTexture1DProjLod2, BOTH),
+ CASE_SPEC(sampler1d_vec2_float, FUNCTION_TEXTUREPROJLOD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapFloat, evalTexture1DProjLod2, BOTH),
+ CASE_SPEC(isampler1d_vec2, FUNCTION_TEXTUREPROJLOD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapInt, evalTexture1DProjLod2, BOTH),
+ CASE_SPEC(usampler1d_vec2, FUNCTION_TEXTUREPROJLOD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapUint, evalTexture1DProjLod2, BOTH),
+
+ CASE_SPEC(sampler1d_vec4_fixed, FUNCTION_TEXTUREPROJLOD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapFixed, evalTexture1DProjLod, BOTH),
+ CASE_SPEC(sampler1d_vec4_float, FUNCTION_TEXTUREPROJLOD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapFloat, evalTexture1DProjLod, BOTH),
+ CASE_SPEC(isampler1d_vec4, FUNCTION_TEXTUREPROJLOD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapInt, evalTexture1DProjLod, BOTH),
+ CASE_SPEC(usampler1d_vec4, FUNCTION_TEXTUREPROJLOD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapUint, evalTexture1DProjLod, BOTH),
+
+ CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJLOD, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), false, -1.0f, 9.0f, false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowProjLod, BOTH),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJLOD, Vec4( 0.2f, 0.0f, 0.0f, 1.5f), Vec4(-2.25f, 0.0f, 0.0f, 1.5f), false, -1.0f, 9.0f, false, IVec3(0), tex1DMipmapShadow, evalTexture1DShadowProjLod, BOTH),
};
createCaseGroup(this, "textureprojlod", "textureProjLod() Tests", textureProjLodCases, DE_LENGTH_OF_ARRAY(textureProjLodCases));
@@ -3270,7 +3773,18 @@
CASE_SPEC(isampler3d, FUNCTION_TEXTUREPROJLOD, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), false, -1.0f, 7.0f, true, IVec3(3, -8, 7), tex3DMipmapInt, evalTexture3DProjLodOffset, BOTH),
CASE_SPEC(usampler3d, FUNCTION_TEXTUREPROJLOD, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), false, -1.0f, 7.0f, true, IVec3(-8, 7, 3), tex3DMipmapUint, evalTexture3DProjLodOffset, BOTH),
- CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJLOD, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), false, -1.0f, 9.0f, true, IVec3(-8, 7, 0), tex2DMipmapShadow, evalTexture2DShadowProjLodOffset, BOTH)
+ CASE_SPEC(sampler1d_vec2_fixed, FUNCTION_TEXTUREPROJLOD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(-8, 0, 0), tex1DMipmapFixed, evalTexture1DProjLod2Offset, BOTH),
+ CASE_SPEC(sampler1d_vec2_float, FUNCTION_TEXTUREPROJLOD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DMipmapFloat, evalTexture1DProjLod2Offset, BOTH),
+ CASE_SPEC(isampler1d_vec2, FUNCTION_TEXTUREPROJLOD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(-8, 0, 0), tex1DMipmapInt, evalTexture1DProjLod2Offset, BOTH),
+ CASE_SPEC(usampler1d_vec2, FUNCTION_TEXTUREPROJLOD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DMipmapUint, evalTexture1DProjLod2Offset, BOTH),
+
+ CASE_SPEC(sampler1d_vec4_fixed, FUNCTION_TEXTUREPROJLOD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, -1.0f, 9.0f, true, IVec3(-8, 0, 0), tex1DMipmapFixed, evalTexture1DProjLodOffset, BOTH),
+ CASE_SPEC(sampler1d_vec4_float, FUNCTION_TEXTUREPROJLOD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DMipmapFloat, evalTexture1DProjLodOffset, BOTH),
+ CASE_SPEC(isampler1d_vec4, FUNCTION_TEXTUREPROJLOD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, -1.0f, 9.0f, true, IVec3(-8, 0, 0), tex1DMipmapInt, evalTexture1DProjLodOffset, BOTH),
+ CASE_SPEC(usampler1d_vec4, FUNCTION_TEXTUREPROJLOD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DMipmapUint, evalTexture1DProjLodOffset, BOTH),
+
+ CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJLOD, Vec4( 0.2f, 0.6f, 0.0f, 1.5f), Vec4(-2.25f, -3.45f, 1.5f, 1.5f), false, -1.0f, 9.0f, true, IVec3(-8, 7, 0), tex2DMipmapShadow, evalTexture2DShadowProjLodOffset, BOTH),
+ CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJLOD, Vec4( 0.2f, 0.0f, 0.0f, 1.5f), Vec4(-2.25f, 0.0f, 1.5f, 1.5f), false, -1.0f, 9.0f, true, IVec3(7, 0, 0), tex1DMipmapShadow, evalTexture1DShadowProjLodOffset, BOTH),
};
createCaseGroup(this, "textureprojlodoffset", "textureProjLodOffset() Tests", textureProjLodOffsetCases, DE_LENGTH_OF_ARRAY(textureProjLodOffsetCases));
@@ -3301,10 +3815,28 @@
GRAD_CASE_SPEC(usampler3d, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.2f, 0.0f), false, IVec3(0), tex3DMipmapUint, evalTexture3DGrad, VERTEX),
GRAD_CASE_SPEC(usampler3d, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, -0.2f), false, IVec3(0), tex3DMipmapUint, evalTexture3DGrad, FRAGMENT),
+ GRAD_CASE_SPEC(sampler1d_fixed, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapFixed, evalTexture1DGrad, BOTH),
+ GRAD_CASE_SPEC(sampler1d_float, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapFloat, evalTexture1DGrad, BOTH),
+ GRAD_CASE_SPEC(isampler1d, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapInt, evalTexture1DGrad, BOTH),
+ GRAD_CASE_SPEC(usampler1d, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapUint, evalTexture1DGrad, BOTH),
+
+ GRAD_CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DArrayMipmapFixed, evalTexture1DArrayGrad, BOTH),
+ GRAD_CASE_SPEC(sampler1darray_float, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DArrayMipmapFloat, evalTexture1DArrayGrad, BOTH),
+ GRAD_CASE_SPEC(isampler1darray, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DArrayMipmapInt, evalTexture1DArrayGrad, BOTH),
+ GRAD_CASE_SPEC(usampler1darray, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DArrayMipmapUint, evalTexture1DArrayGrad, BOTH),
+
+ GRAD_CASE_SPEC(samplercubearray_fixed, FUNCTION_TEXTUREGRAD, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), texCubeArrayMipmapFixed, evalTextureCubeArrayGrad, BOTH),
+ GRAD_CASE_SPEC(samplercubearray_float, FUNCTION_TEXTUREGRAD, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, -0.2f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), texCubeArrayMipmapFloat, evalTextureCubeArrayGrad, BOTH),
+ GRAD_CASE_SPEC(isamplercubearray, FUNCTION_TEXTUREGRAD, Vec4(-1.0f, -1.0f, 1.01f, -0.5f), Vec4( 1.0f, 1.0f, 1.01f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), false, IVec3(0), texCubeArrayMipmapInt, evalTextureCubeArrayGrad, BOTH),
+ GRAD_CASE_SPEC(usamplercubearray, FUNCTION_TEXTUREGRAD, Vec4(-1.0f, -1.0f, -1.01f, -0.5f), Vec4( 1.0f, 1.0f, -1.01f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.2f, 0.0f), false, IVec3(0), texCubeArrayMipmapUint, evalTextureCubeArrayGrad, BOTH),
+
GRAD_CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowGrad, BOTH),
GRAD_CASE_SPEC(samplercubeshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.0f, -1.0f, 1.01f, 0.0f), Vec4( 1.0f, 1.0f, 1.01f, 1.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.2f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), texCubeMipmapShadow, evalTextureCubeShadowGrad, BOTH),
GRAD_CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), false, IVec3(0), tex2DArrayMipmapShadow, evalTexture2DArrayShadowGrad, VERTEX),
- GRAD_CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, -0.2f, 0.0f), false, IVec3(0), tex2DArrayMipmapShadow, evalTexture2DArrayShadowGrad, FRAGMENT)
+ GRAD_CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, -0.2f, 0.0f), false, IVec3(0), tex2DArrayMipmapShadow, evalTexture2DArrayShadowGrad, FRAGMENT),
+ GRAD_CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapShadow, evalTexture1DShadowGrad, BOTH),
+ GRAD_CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DArrayMipmapShadow, evalTexture1DArrayShadowGrad, VERTEX),
+ GRAD_CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DArrayMipmapShadow, evalTexture1DArrayShadowGrad, FRAGMENT),
};
createCaseGroup(this, "texturegrad", "textureGrad() Tests", textureGradCases, DE_LENGTH_OF_ARRAY(textureGradCases));
@@ -3329,10 +3861,24 @@
GRAD_CASE_SPEC(usampler3d, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.2f, 0.0f), true, IVec3(7, 3, -8), tex3DMipmapUint, evalTexture3DGradOffset, VERTEX),
GRAD_CASE_SPEC(usampler3d, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -1.4f, 0.1f, 0.0f), Vec4( 1.5f, 2.3f, 2.3f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, -0.2f), true, IVec3(3, -8, 7), tex3DMipmapUint, evalTexture3DGradOffset, FRAGMENT),
+ GRAD_CASE_SPEC(sampler1d_fixed, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(-8, 0, 0), tex1DMipmapFixed, evalTexture1DGradOffset, BOTH),
+ GRAD_CASE_SPEC(sampler1d_float, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(7, 0, 0), tex1DMipmapFloat, evalTexture1DGradOffset, BOTH),
+ GRAD_CASE_SPEC(isampler1d, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), true, IVec3(-8, 0, 0), tex1DMipmapInt, evalTexture1DGradOffset, BOTH),
+ GRAD_CASE_SPEC(usampler1d, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), true, IVec3(7, 0, 0), tex1DMipmapUint, evalTexture1DGradOffset, BOTH),
+
+ GRAD_CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(-8, 0, 0), tex1DArrayMipmapFixed, evalTexture1DArrayGradOffset, BOTH),
+ GRAD_CASE_SPEC(sampler1darray_float, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(7, 0, 0), tex1DArrayMipmapFloat, evalTexture1DArrayGradOffset, BOTH),
+ GRAD_CASE_SPEC(isampler1darray, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), true, IVec3(-8, 0, 0), tex1DArrayMipmapInt, evalTexture1DArrayGradOffset, BOTH),
+ GRAD_CASE_SPEC(usampler1darray, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), true, IVec3(7, 0, 0), tex1DArrayMipmapUint, evalTexture1DArrayGradOffset, BOTH),
+
GRAD_CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(-8, 7, 0), tex2DMipmapShadow, evalTexture2DShadowGradOffset, VERTEX),
GRAD_CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, -0.4f, 0.0f, 0.0f), Vec4( 1.5f, 2.3f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.2f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(7, -8, 0), tex2DMipmapShadow, evalTexture2DShadowGradOffset, FRAGMENT),
GRAD_CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), true, IVec3(-8, 7, 0), tex2DArrayMipmapShadow, evalTexture2DArrayShadowGradOffset, VERTEX),
- GRAD_CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, -0.2f, 0.0f), true, IVec3(7, -8, 0), tex2DArrayMipmapShadow, evalTexture2DArrayShadowGradOffset, FRAGMENT)
+ GRAD_CASE_SPEC(sampler2darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.4f, -0.5f, 0.0f), Vec4( 1.5f, 2.3f, 3.5f, 1.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, -0.2f, 0.0f), true, IVec3(7, -8, 0), tex2DArrayMipmapShadow, evalTexture2DArrayShadowGradOffset, FRAGMENT),
+ GRAD_CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(-8, 0, 0), tex1DMipmapShadow, evalTexture1DShadowGradOffset, VERTEX),
+ GRAD_CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREGRAD, Vec4(-0.2f, 0.0f, 0.0f, 0.0f), Vec4( 1.5f, 0.0f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(7, 0, 0), tex1DMipmapShadow, evalTexture1DShadowGradOffset, FRAGMENT),
+ GRAD_CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), true, IVec3(-8, 0, 0), tex1DArrayMipmapShadow, evalTexture1DArrayShadowGradOffset, VERTEX),
+ GRAD_CASE_SPEC(sampler1darrayshadow, FUNCTION_TEXTUREGRAD, Vec4(-1.2f, -0.5f, 0.0f, 0.0f), Vec4( 1.5f, 3.5f, 1.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), true, IVec3(7, 0, 0), tex1DArrayMipmapShadow, evalTexture1DArrayShadowGradOffset, FRAGMENT),
};
createCaseGroup(this, "texturegradoffset", "textureGradOffset() Tests", textureGradOffsetCases, DE_LENGTH_OF_ARRAY(textureGradOffsetCases));
@@ -3357,8 +3903,20 @@
GRAD_CASE_SPEC(usampler3d, FUNCTION_TEXTUREPROJGRAD, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.2f, 0.0f), false, IVec3(0), tex3DMipmapUint, evalTexture3DProjGrad, VERTEX),
GRAD_CASE_SPEC(usampler3d, FUNCTION_TEXTUREPROJGRAD, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, -0.2f), false, IVec3(0), tex3DMipmapUint, evalTexture3DProjGrad, FRAGMENT),
+ GRAD_CASE_SPEC(sampler1d_vec2_fixed, FUNCTION_TEXTUREPROJGRAD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapFixed, evalTexture1DProjGrad2, BOTH),
+ GRAD_CASE_SPEC(sampler1d_vec2_float, FUNCTION_TEXTUREPROJGRAD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapFloat, evalTexture1DProjGrad2, BOTH),
+ GRAD_CASE_SPEC(isampler1d_vec2, FUNCTION_TEXTUREPROJGRAD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapInt, evalTexture1DProjGrad2, BOTH),
+ GRAD_CASE_SPEC(usampler1d_vec2, FUNCTION_TEXTUREPROJGRAD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapUint, evalTexture1DProjGrad2, BOTH),
+
+ GRAD_CASE_SPEC(sampler1d_vec4_fixed, FUNCTION_TEXTUREPROJGRAD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapFixed, evalTexture1DProjGrad, BOTH),
+ GRAD_CASE_SPEC(sampler1d_vec4_float, FUNCTION_TEXTUREPROJGRAD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapFloat, evalTexture1DProjGrad, BOTH),
+ GRAD_CASE_SPEC(isampler1d_vec4, FUNCTION_TEXTUREPROJGRAD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapInt, evalTexture1DProjGrad, BOTH),
+ GRAD_CASE_SPEC(usampler1d_vec4, FUNCTION_TEXTUREPROJGRAD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapUint, evalTexture1DProjGrad, BOTH),
+
GRAD_CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.6f, 0.0f, -1.5f), Vec4(-2.25f, -3.45f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowProjGrad, VERTEX),
- GRAD_CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.6f, 0.0f, -1.5f), Vec4(-2.25f, -3.45f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, -0.2f, 0.0f), false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowProjGrad, FRAGMENT)
+ GRAD_CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.6f, 0.0f, -1.5f), Vec4(-2.25f, -3.45f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, -0.2f, 0.0f), false, IVec3(0), tex2DMipmapShadow, evalTexture2DShadowProjGrad, FRAGMENT),
+ GRAD_CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.0f, 0.0f, -1.5f), Vec4(-2.25f, 0.0f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapShadow, evalTexture1DShadowProjGrad, VERTEX),
+ GRAD_CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.0f, 0.0f, -1.5f), Vec4(-2.25f, 0.0f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), false, IVec3(0), tex1DMipmapShadow, evalTexture1DShadowProjGrad, FRAGMENT),
};
createCaseGroup(this, "textureprojgrad", "textureProjGrad() Tests", textureProjGradCases, DE_LENGTH_OF_ARRAY(textureProjGradCases));
@@ -3383,8 +3941,20 @@
GRAD_CASE_SPEC(usampler3d, FUNCTION_TEXTUREPROJGRAD, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.2f, 0.0f), true, IVec3(7, 3, -8), tex3DMipmapUint, evalTexture3DProjGradOffset, VERTEX),
GRAD_CASE_SPEC(usampler3d, FUNCTION_TEXTUREPROJGRAD, Vec4(0.9f, 1.05f, -0.08f, -0.75f), Vec4(-1.13f, -1.7f, -1.7f, -0.75f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, -0.2f), true, IVec3(3, -8, 7), tex3DMipmapUint, evalTexture3DProjGradOffset, FRAGMENT),
+ GRAD_CASE_SPEC(sampler1d_vec2_fixed, FUNCTION_TEXTUREPROJGRAD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(-8, 7, 0), tex1DMipmapFixed, evalTexture1DProjGrad2Offset, BOTH),
+ GRAD_CASE_SPEC(sampler1d_vec2_float, FUNCTION_TEXTUREPROJGRAD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(7, -8, 0), tex1DMipmapFloat, evalTexture1DProjGrad2Offset, BOTH),
+ GRAD_CASE_SPEC(isampler1d_vec2, FUNCTION_TEXTUREPROJGRAD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), true, IVec3(-8, 7, 0), tex1DMipmapInt, evalTexture1DProjGrad2Offset, BOTH),
+ GRAD_CASE_SPEC(usampler1d_vec2, FUNCTION_TEXTUREPROJGRAD2, Vec4(-0.3f, 1.5f, 0.0f, 0.0f), Vec4(2.25f, 1.5f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), true, IVec3(7, -8, 0), tex1DMipmapUint, evalTexture1DProjGrad2Offset, BOTH),
+
+ GRAD_CASE_SPEC(sampler1d_vec4_fixed, FUNCTION_TEXTUREPROJGRAD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(-8, 7, 0), tex1DMipmapFixed, evalTexture1DProjGradOffset, BOTH),
+ GRAD_CASE_SPEC(sampler1d_vec4_float, FUNCTION_TEXTUREPROJGRAD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(7, -8, 0), tex1DMipmapFloat, evalTexture1DProjGradOffset, BOTH),
+ GRAD_CASE_SPEC(isampler1d_vec4, FUNCTION_TEXTUREPROJGRAD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), true, IVec3(-8, 7, 0), tex1DMipmapInt, evalTexture1DProjGradOffset, BOTH),
+ GRAD_CASE_SPEC(usampler1d_vec4, FUNCTION_TEXTUREPROJGRAD, Vec4(-0.3f, 0.0f, 0.0f, 1.5f), Vec4(2.25f, 0.0f, 0.0f, 1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), true, IVec3(7, -8, 0), tex1DMipmapUint, evalTexture1DProjGradOffset, BOTH),
+
GRAD_CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.6f, 0.0f, -1.5f), Vec4(-2.25f, -3.45f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(-8, 7, 0), tex2DMipmapShadow, evalTexture2DShadowProjGradOffset, VERTEX),
- GRAD_CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.6f, 0.0f, -1.5f), Vec4(-2.25f, -3.45f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, -0.2f, 0.0f), true, IVec3(7, -8, 0), tex2DMipmapShadow, evalTexture2DShadowProjGradOffset, FRAGMENT)
+ GRAD_CASE_SPEC(sampler2dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.6f, 0.0f, -1.5f), Vec4(-2.25f, -3.45f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, -0.2f, 0.0f), true, IVec3(7, -8, 0), tex2DMipmapShadow, evalTexture2DShadowProjGradOffset, FRAGMENT),
+ GRAD_CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.0f, 0.0f, -1.5f), Vec4(-2.25f, 0.0f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.2f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), true, IVec3(-8, 7, 0), tex1DMipmapShadow, evalTexture1DShadowProjGradOffset, VERTEX),
+ GRAD_CASE_SPEC(sampler1dshadow, FUNCTION_TEXTUREPROJGRAD, Vec4( 0.2f, 0.0f, 0.0f, -1.5f), Vec4(-2.25f, 0.0f, -1.5f, -1.5f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3( 0.0f, 0.0f, 0.0f), Vec3(-0.2f, 0.0f, 0.0f), true, IVec3(7, -8, 0), tex1DMipmapShadow, evalTexture1DShadowProjGradOffset, FRAGMENT),
};
createCaseGroup(this, "textureprojgradoffset", "textureProjGradOffset() Tests", textureProjGradOffsetCases, DE_LENGTH_OF_ARRAY(textureProjGradOffsetCases));
@@ -3406,7 +3976,17 @@
CASE_SPEC(sampler3d_fixed, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4(63.9f, 31.9f, 31.9f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex3DTexelFetchFixed, evalTexelFetch3D, BOTH),
CASE_SPEC(sampler3d_float, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4(31.9f, 15.9f, 15.9f, 0.0f), false, 1.0f, 1.0f, false, IVec3(0), tex3DTexelFetchFloat, evalTexelFetch3D, BOTH),
CASE_SPEC(isampler3d, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4(15.9f, 7.9f, 7.9f, 0.0f), false, 2.0f, 2.0f, false, IVec3(0), tex3DTexelFetchInt, evalTexelFetch3D, BOTH),
- CASE_SPEC(usampler3d, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4(63.9f, 31.9f, 31.9f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex3DTexelFetchUint, evalTexelFetch3D, BOTH)
+ CASE_SPEC(usampler3d, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4(63.9f, 31.9f, 31.9f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex3DTexelFetchUint, evalTexelFetch3D, BOTH),
+
+ CASE_SPEC(sampler1d_fixed, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4(255.9f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DTexelFetchFixed, evalTexelFetch1D, BOTH),
+ CASE_SPEC(sampler1d_float, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4(127.9f, 0.0f, 0.0f, 0.0f), false, 1.0f, 1.0f, false, IVec3(0), tex1DTexelFetchFloat, evalTexelFetch1D, BOTH),
+ CASE_SPEC(isampler1d, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4( 63.9f, 0.0f, 0.0f, 0.0f), false, 2.0f, 2.0f, false, IVec3(0), tex1DTexelFetchInt, evalTexelFetch1D, BOTH),
+ CASE_SPEC(usampler1d, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4( 15.9f, 0.0f, 0.0f, 0.0f), false, 4.0f, 4.0f, false, IVec3(0), tex1DTexelFetchUint, evalTexelFetch1D, BOTH),
+
+ CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4(255.9f, 3.9f, 0.0f, 0.0f), false, 0.0f, 0.0f, false, IVec3(0), tex1DArrayTexelFetchFixed, evalTexelFetch1DArray, BOTH),
+ CASE_SPEC(sampler1darray_float, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4(127.9f, 3.9f, 0.0f, 0.0f), false, 1.0f, 1.0f, false, IVec3(0), tex1DArrayTexelFetchFloat, evalTexelFetch1DArray, BOTH),
+ CASE_SPEC(isampler1darray, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4( 63.9f, 3.9f, 0.0f, 0.0f), false, 2.0f, 2.0f, false, IVec3(0), tex1DArrayTexelFetchInt, evalTexelFetch1DArray, BOTH),
+ CASE_SPEC(usampler1darray, FUNCTION_TEXELFETCH, Vec4(0.0f, 0.0f, 0.0f, 0.0f), Vec4( 15.9f, 3.9f, 0.0f, 0.0f), false, 4.0f, 4.0f, false, IVec3(0), tex1DArrayTexelFetchUint, evalTexelFetch1DArray, BOTH),
};
createCaseGroup(this, "texelfetch", "texelFetch() Tests", texelFetchCases, DE_LENGTH_OF_ARRAY(texelFetchCases));
@@ -3427,7 +4007,17 @@
CASE_SPEC(sampler3d_fixed, FUNCTION_TEXELFETCH, Vec4( 8.0f, -7.0f, -3.0f, 0.0f),Vec4(71.9f, 24.9f, 28.9f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 7, 3), tex3DTexelFetchFixed, evalTexelFetch3D, BOTH),
CASE_SPEC(sampler3d_float, FUNCTION_TEXELFETCH, Vec4(-7.0f, -3.0f, 8.0f, 0.0f),Vec4(24.9f, 12.9f, 23.9f, 0.0f), false, 1.0f, 1.0f, true, IVec3(7, 3, -8), tex3DTexelFetchFloat, evalTexelFetch3D, BOTH),
CASE_SPEC(isampler3d, FUNCTION_TEXELFETCH, Vec4(-3.0f, 8.0f, -7.0f, 0.0f),Vec4(12.9f, 15.9f, 0.9f, 0.0f), false, 2.0f, 2.0f, true, IVec3(3, -8, 7), tex3DTexelFetchInt, evalTexelFetch3D, BOTH),
- CASE_SPEC(usampler3d, FUNCTION_TEXELFETCH, Vec4( 8.0f, -7.0f, -3.0f, 0.0f),Vec4(71.9f, 24.9f, 28.9f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 7, 3), tex3DTexelFetchUint, evalTexelFetch3D, BOTH)
+ CASE_SPEC(usampler3d, FUNCTION_TEXELFETCH, Vec4( 8.0f, -7.0f, -3.0f, 0.0f),Vec4(71.9f, 24.9f, 28.9f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 7, 3), tex3DTexelFetchUint, evalTexelFetch3D, BOTH),
+
+ CASE_SPEC(sampler1d_fixed, FUNCTION_TEXELFETCH, Vec4( 8.0f, 0.0f, 0.0f, 0.0f), Vec4(263.9f, 0.0f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DTexelFetchFixed, evalTexelFetch1D, BOTH),
+ CASE_SPEC(sampler1d_float, FUNCTION_TEXELFETCH, Vec4(-7.0f, 0.0f, 0.0f, 0.0f), Vec4(120.9f, 0.0f, 0.0f, 0.0f), false, 1.0f, 1.0f, true, IVec3(7, 0, 0), tex1DTexelFetchFloat, evalTexelFetch1D, BOTH),
+ CASE_SPEC(isampler1d, FUNCTION_TEXELFETCH, Vec4( 8.0f, 0.0f, 0.0f, 0.0f), Vec4( 71.9f, 0.0f, 0.0f, 0.0f), false, 2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DTexelFetchInt, evalTexelFetch1D, BOTH),
+ CASE_SPEC(usampler1d, FUNCTION_TEXELFETCH, Vec4(-7.0f, 0.0f, 0.0f, 0.0f), Vec4( 8.9f, 0.0f, 0.0f, 0.0f), false, 4.0f, 4.0f, true, IVec3(7, 0, 0), tex1DTexelFetchUint, evalTexelFetch1D, BOTH),
+
+ CASE_SPEC(sampler1darray_fixed, FUNCTION_TEXELFETCH, Vec4( 8.0f, 0.0f, 0.0f, 0.0f), Vec4(135.9f, 3.9f, 0.0f, 0.0f), false, 0.0f, 0.0f, true, IVec3(-8, 0, 0), tex1DArrayTexelFetchFixed, evalTexelFetch1DArray, BOTH),
+ CASE_SPEC(sampler1darray_float, FUNCTION_TEXELFETCH, Vec4(-7.0f, 0.0f, 0.0f, 0.0f), Vec4( 56.9f, 3.9f, 0.0f, 0.0f), false, 1.0f, 1.0f, true, IVec3(7, 0, 0), tex1DArrayTexelFetchFloat, evalTexelFetch1DArray, BOTH),
+ CASE_SPEC(isampler1darray, FUNCTION_TEXELFETCH, Vec4( 8.0f, 0.0f, 0.0f, 0.0f), Vec4( 39.9f, 3.9f, 0.0f, 0.0f), false, 2.0f, 2.0f, true, IVec3(-8, 0, 0), tex1DArrayTexelFetchInt, evalTexelFetch1DArray, BOTH),
+ CASE_SPEC(usampler1darray, FUNCTION_TEXELFETCH, Vec4(-7.0f, 0.0f, 0.0f, 0.0f), Vec4( 8.9f, 3.9f, 0.0f, 0.0f), false, 3.0f, 3.0f, true, IVec3(7, 0, 0), tex1DArrayTexelFetchUint, evalTexelFetch1DArray, BOTH),
};
createCaseGroup(this, "texelfetchoffset", "texelFetchOffset() Tests", texelFetchOffsetCases, DE_LENGTH_OF_ARRAY(texelFetchOffsetCases));
diff --git a/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferTests.cpp b/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferTests.cpp
index fc9e7ee..991a528 100644
--- a/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferTests.cpp
+++ b/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferTests.cpp
@@ -202,12 +202,6 @@
return requirements;
}
-inline VkDeviceSize alignSize (const VkDeviceSize val, const VkDeviceSize align)
-{
- DE_ASSERT(deIsPowerOfTwo64(align));
- return (val + align - 1) & ~(align - 1);
-}
-
MovePtr<SparseAllocation> SparseAllocationBuilder::build (const DeviceInterface& vk,
const VkDevice device,
Allocator& allocator,
@@ -220,7 +214,7 @@
referenceCreateInfo.size = sizeof(deUint32);
const Unique<VkBuffer> refBuffer (createBuffer(vk, device, &referenceCreateInfo));
const VkMemoryRequirements memoryRequirements = getBufferMemoryRequirements(vk, device, *refBuffer);
- const VkDeviceSize chunkSize = std::max(memoryRequirements.alignment, alignSize(minChunkSize, memoryRequirements.alignment));
+ const VkDeviceSize chunkSize = std::max(memoryRequirements.alignment, static_cast<VkDeviceSize>(deAlign64(minChunkSize, memoryRequirements.alignment)));
for (std::vector<deUint32>::const_iterator numChunksIter = m_chunksPerAllocation.begin(); numChunksIter != m_chunksPerAllocation.end(); ++numChunksIter)
{
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
index 8a560ad..b2247ca 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
@@ -404,7 +404,7 @@
if (m_shaderSpec.verifyIO)
{
if (!(*m_shaderSpec.verifyIO)(m_shaderSpec.inputs, outputAllocs, m_shaderSpec.outputs, m_context.getTestContext().getLog()))
- return tcu::TestStatus::fail("Output doesn't match with expected");
+ return tcu::TestStatus(m_shaderSpec.failResult, m_shaderSpec.failMessage);
}
else
{
@@ -412,11 +412,11 @@
{
const BufferSp& expectedOutput = m_shaderSpec.outputs[outputNdx];
if (deMemCmp(expectedOutput->data(), outputAllocs[outputNdx]->getHostPtr(), expectedOutput->getNumBytes()))
- return tcu::TestStatus::fail("Output doesn't match with expected");
+ return tcu::TestStatus(m_shaderSpec.failResult, m_shaderSpec.failMessage);
}
}
- return tcu::TestStatus::pass("Ouput match with expected");
+ return tcu::TestStatus::pass("Output match with expected");
}
class ConvertTestInstance : public SpvAsmComputeShaderInstance
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderTestUtil.hpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderTestUtil.hpp
index 4c6b644..1f0551d 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderTestUtil.hpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderTestUtil.hpp
@@ -95,16 +95,20 @@
std::vector<BufferSp> outputs;
tcu::IVec3 numWorkGroups;
std::vector<deUint32> specConstants;
+ qpTestResult failResult;
+ std::string failMessage;
// If null, a default verification will be performed by comparing the memory pointed to by outputAllocations
// and the contents of expectedOutputs. Otherwise the function pointed to by verifyIO will be called.
// If true is returned, then the test case is assumed to have passed, if false is returned, then the test
- // case is assumed to have failed.
+ // case is assumed to have failed. Exact meaning of failure can be customized with failResult.
bool (*verifyIO)(const std::vector<BufferSp>& inputs, const std::vector<AllocationSp>& outputAllocations, const std::vector<BufferSp>& expectedOutputs, tcu::TestLog& log);
- ComputeShaderSpec()
+
+ ComputeShaderSpec (void)
: entryPoint ("main")
+ , failResult (QP_TEST_RESULT_FAIL)
+ , failMessage ("Output doesn't match with expected")
, verifyIO (DE_NULL)
{}
-
};
} // SpirVAssembly
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
index 3887f80..dc7f831 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
@@ -3,6 +3,7 @@
* ------------------------
*
* Copyright (c) 2015 Google Inc.
+ * Copyright (c) 2016 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,7 +48,6 @@
#include "deUniquePtr.hpp"
#include "tcuStringTemplate.hpp"
-#include <cmath>
#include "vktSpvAsmComputeShaderCase.hpp"
#include "vktSpvAsmComputeShaderTestUtil.hpp"
#include "vktTestCaseUtil.hpp"
@@ -57,6 +57,7 @@
#include <map>
#include <string>
#include <sstream>
+#include <utility>
namespace vkt
{
@@ -95,6 +96,27 @@
typedPtr[offset + ndx] = randomScalar<T>(rnd, minValue, maxValue);
}
+// Filter is a function that returns true if a value should pass, false otherwise.
+template<typename T, typename FilterT>
+static void fillRandomScalars (de::Random& rnd, T minValue, T maxValue, void* dst, int numValues, FilterT filter, int offset = 0)
+{
+ T* const typedPtr = (T*)dst;
+ T value;
+ for (int ndx = 0; ndx < numValues; ndx++)
+ {
+ do
+ value = randomScalar<T>(rnd, minValue, maxValue);
+ while (!filter(value));
+
+ typedPtr[offset + ndx] = value;
+ }
+}
+
+inline bool filterNotZero (const deInt32 value)
+{
+ return value != 0;
+}
+
static void floorAll (vector<float>& values)
{
for (size_t i = 0; i < values.size(); i++)
@@ -840,6 +862,212 @@
return group.release();
}
+tcu::TestCaseGroup* createOpSRemGroup (tcu::TestContext& testCtx)
+{
+ de::MovePtr<tcu::TestCaseGroup> group (new tcu::TestCaseGroup(testCtx, "opsrem", "Test the OpSRem instruction"));
+ de::Random rnd (deStringHash(group->getName()));
+ const int numElements = 200;
+
+ const struct CaseParams
+ {
+ const char* name;
+ const char* failMessage; // customized status message
+ qpTestResult failResult; // override status on failure
+ int op1Min, op1Max; // operand ranges
+ int op2Min, op2Max;
+ } cases[] =
+ {
+ { "positive", "Output doesn't match with expected", QP_TEST_RESULT_FAIL, 0, 65536, 0, 100 },
+ { "all", "Inconsistent results, but within specification", QP_TEST_RESULT_PASS, -65536, 65536, -100, 100 }, // see below
+ };
+ // If either operand is negative the result is undefined. Some implementations may still return correct values.
+
+ for (int caseNdx = 0; caseNdx < DE_LENGTH_OF_ARRAY(cases); ++caseNdx)
+ {
+ const CaseParams& params = cases[caseNdx];
+ ComputeShaderSpec spec;
+ vector<deInt32> inputInts1 (numElements, 0);
+ vector<deInt32> inputInts2 (numElements, 0);
+ vector<deInt32> outputInts (numElements, 0);
+
+ fillRandomScalars(rnd, params.op1Min, params.op1Max, &inputInts1[0], numElements);
+ fillRandomScalars(rnd, params.op2Min, params.op2Max, &inputInts2[0], numElements, filterNotZero);
+
+ for (int ndx = 0; ndx < numElements; ++ndx)
+ {
+ // The return value of std::fmod() has the same sign as its first operand, which is how OpFRem spec'd.
+ outputInts[ndx] = inputInts1[ndx] % inputInts2[ndx];
+ }
+
+ spec.assembly =
+ string(s_ShaderPreamble) +
+
+ "OpName %main \"main\"\n"
+ "OpName %id \"gl_GlobalInvocationID\"\n"
+
+ "OpDecorate %id BuiltIn GlobalInvocationId\n"
+
+ "OpDecorate %buf BufferBlock\n"
+ "OpDecorate %indata1 DescriptorSet 0\n"
+ "OpDecorate %indata1 Binding 0\n"
+ "OpDecorate %indata2 DescriptorSet 0\n"
+ "OpDecorate %indata2 Binding 1\n"
+ "OpDecorate %outdata DescriptorSet 0\n"
+ "OpDecorate %outdata Binding 2\n"
+ "OpDecorate %i32arr ArrayStride 4\n"
+ "OpMemberDecorate %buf 0 Offset 0\n"
+
+ + string(s_CommonTypes) +
+
+ "%buf = OpTypeStruct %i32arr\n"
+ "%bufptr = OpTypePointer Uniform %buf\n"
+ "%indata1 = OpVariable %bufptr Uniform\n"
+ "%indata2 = OpVariable %bufptr Uniform\n"
+ "%outdata = OpVariable %bufptr Uniform\n"
+
+ "%id = OpVariable %uvec3ptr Input\n"
+ "%zero = OpConstant %i32 0\n"
+
+ "%main = OpFunction %void None %voidf\n"
+ "%label = OpLabel\n"
+ "%idval = OpLoad %uvec3 %id\n"
+ "%x = OpCompositeExtract %u32 %idval 0\n"
+ "%inloc1 = OpAccessChain %i32ptr %indata1 %zero %x\n"
+ "%inval1 = OpLoad %i32 %inloc1\n"
+ "%inloc2 = OpAccessChain %i32ptr %indata2 %zero %x\n"
+ "%inval2 = OpLoad %i32 %inloc2\n"
+ "%rem = OpSRem %i32 %inval1 %inval2\n"
+ "%outloc = OpAccessChain %i32ptr %outdata %zero %x\n"
+ " OpStore %outloc %rem\n"
+ " OpReturn\n"
+ " OpFunctionEnd\n";
+
+ spec.inputs.push_back (BufferSp(new Int32Buffer(inputInts1)));
+ spec.inputs.push_back (BufferSp(new Int32Buffer(inputInts2)));
+ spec.outputs.push_back (BufferSp(new Int32Buffer(outputInts)));
+ spec.numWorkGroups = IVec3(numElements, 1, 1);
+ spec.failResult = params.failResult;
+ spec.failMessage = params.failMessage;
+
+ group->addChild(new SpvAsmComputeShaderCase(testCtx, params.name, "", spec));
+ }
+
+ return group.release();
+}
+
+tcu::TestCaseGroup* createOpSModGroup (tcu::TestContext& testCtx)
+{
+ de::MovePtr<tcu::TestCaseGroup> group (new tcu::TestCaseGroup(testCtx, "opsmod", "Test the OpSMod instruction"));
+ de::Random rnd (deStringHash(group->getName()));
+ const int numElements = 200;
+
+ const struct CaseParams
+ {
+ const char* name;
+ const char* failMessage; // customized status message
+ qpTestResult failResult; // override status on failure
+ int op1Min, op1Max; // operand ranges
+ int op2Min, op2Max;
+ } cases[] =
+ {
+ { "positive", "Output doesn't match with expected", QP_TEST_RESULT_FAIL, 0, 65536, 0, 100 },
+ { "all", "Inconsistent results, but within specification", QP_TEST_RESULT_PASS, -65536, 65536, -100, 100 }, // see below
+ };
+ // If either operand is negative the result is undefined. Some implementations may still return correct values.
+
+ for (int caseNdx = 0; caseNdx < DE_LENGTH_OF_ARRAY(cases); ++caseNdx)
+ {
+ const CaseParams& params = cases[caseNdx];
+
+ ComputeShaderSpec spec;
+ vector<deInt32> inputInts1 (numElements, 0);
+ vector<deInt32> inputInts2 (numElements, 0);
+ vector<deInt32> outputInts (numElements, 0);
+
+ fillRandomScalars(rnd, params.op1Min, params.op1Max, &inputInts1[0], numElements);
+ fillRandomScalars(rnd, params.op2Min, params.op2Max, &inputInts2[0], numElements, filterNotZero);
+
+ for (int ndx = 0; ndx < numElements; ++ndx)
+ {
+ deInt32 rem = inputInts1[ndx] % inputInts2[ndx];
+ if (rem == 0)
+ {
+ outputInts[ndx] = 0;
+ }
+ else if ((inputInts1[ndx] >= 0) == (inputInts2[ndx] >= 0))
+ {
+ // They have the same sign
+ outputInts[ndx] = rem;
+ }
+ else
+ {
+ // They have opposite sign. The remainder operation takes the
+ // sign inputInts1[ndx] but OpSMod is supposed to take ths sign
+ // of inputInts2[ndx]. Adding inputInts2[ndx] will ensure that
+ // the result has the correct sign and that it is still
+ // congruent to inputInts1[ndx] modulo inputInts2[ndx]
+ //
+ // See also http://mathforum.org/library/drmath/view/52343.html
+ outputInts[ndx] = rem + inputInts2[ndx];
+ }
+ }
+
+ spec.assembly =
+ string(s_ShaderPreamble) +
+
+ "OpName %main \"main\"\n"
+ "OpName %id \"gl_GlobalInvocationID\"\n"
+
+ "OpDecorate %id BuiltIn GlobalInvocationId\n"
+
+ "OpDecorate %buf BufferBlock\n"
+ "OpDecorate %indata1 DescriptorSet 0\n"
+ "OpDecorate %indata1 Binding 0\n"
+ "OpDecorate %indata2 DescriptorSet 0\n"
+ "OpDecorate %indata2 Binding 1\n"
+ "OpDecorate %outdata DescriptorSet 0\n"
+ "OpDecorate %outdata Binding 2\n"
+ "OpDecorate %i32arr ArrayStride 4\n"
+ "OpMemberDecorate %buf 0 Offset 0\n"
+
+ + string(s_CommonTypes) +
+
+ "%buf = OpTypeStruct %i32arr\n"
+ "%bufptr = OpTypePointer Uniform %buf\n"
+ "%indata1 = OpVariable %bufptr Uniform\n"
+ "%indata2 = OpVariable %bufptr Uniform\n"
+ "%outdata = OpVariable %bufptr Uniform\n"
+
+ "%id = OpVariable %uvec3ptr Input\n"
+ "%zero = OpConstant %i32 0\n"
+
+ "%main = OpFunction %void None %voidf\n"
+ "%label = OpLabel\n"
+ "%idval = OpLoad %uvec3 %id\n"
+ "%x = OpCompositeExtract %u32 %idval 0\n"
+ "%inloc1 = OpAccessChain %i32ptr %indata1 %zero %x\n"
+ "%inval1 = OpLoad %i32 %inloc1\n"
+ "%inloc2 = OpAccessChain %i32ptr %indata2 %zero %x\n"
+ "%inval2 = OpLoad %i32 %inloc2\n"
+ "%rem = OpSMod %i32 %inval1 %inval2\n"
+ "%outloc = OpAccessChain %i32ptr %outdata %zero %x\n"
+ " OpStore %outloc %rem\n"
+ " OpReturn\n"
+ " OpFunctionEnd\n";
+
+ spec.inputs.push_back (BufferSp(new Int32Buffer(inputInts1)));
+ spec.inputs.push_back (BufferSp(new Int32Buffer(inputInts2)));
+ spec.outputs.push_back (BufferSp(new Int32Buffer(outputInts)));
+ spec.numWorkGroups = IVec3(numElements, 1, 1);
+ spec.failResult = params.failResult;
+ spec.failMessage = params.failMessage;
+
+ group->addChild(new SpvAsmComputeShaderCase(testCtx, params.name, "", spec));
+ }
+
+ return group.release();
+}
+
// Copy contents in the input buffer to the output buffer.
tcu::TestCaseGroup* createOpCopyMemoryGroup (tcu::TestContext& testCtx)
{
@@ -1612,29 +1840,33 @@
+ string(s_InputOutputBufferTraits) + string(s_CommonTypes) +
- "%ivec3 = OpTypeVector %i32 3\n"
- "%buf = OpTypeStruct %i32arr\n"
- "%bufptr = OpTypePointer Uniform %buf\n"
- "%indata = OpVariable %bufptr Uniform\n"
- "%outdata = OpVariable %bufptr Uniform\n"
+ "%ivec3 = OpTypeVector %i32 3\n"
+ "%buf = OpTypeStruct %i32arr\n"
+ "%bufptr = OpTypePointer Uniform %buf\n"
+ "%indata = OpVariable %bufptr Uniform\n"
+ "%outdata = OpVariable %bufptr Uniform\n"
- "%id = OpVariable %uvec3ptr Input\n"
- "%zero = OpConstant %i32 0\n"
- "%ivec3_0 = OpConstantComposite %ivec3 %zero %zero %zero\n"
+ "%id = OpVariable %uvec3ptr Input\n"
+ "%zero = OpConstant %i32 0\n"
+ "%ivec3_0 = OpConstantComposite %ivec3 %zero %zero %zero\n"
+ "%vec3_undef = OpUndef %ivec3\n"
"%sc_0 = OpSpecConstant %i32 0\n"
"%sc_1 = OpSpecConstant %i32 0\n"
"%sc_2 = OpSpecConstant %i32 0\n"
- "%sc_vec3_0 = OpSpecConstantOp %ivec3 CompositeInsert %sc_0 %ivec3_0 0\n" // (sc_0, 0, 0)
- "%sc_vec3_1 = OpSpecConstantOp %ivec3 CompositeInsert %sc_1 %ivec3_0 1\n" // (0, sc_1, 0)
- "%sc_vec3_2 = OpSpecConstantOp %ivec3 CompositeInsert %sc_2 %ivec3_0 2\n" // (0, 0, sc_2)
- "%sc_vec3_01 = OpSpecConstantOp %ivec3 VectorShuffle %sc_vec3_0 %sc_vec3_1 1 0 4\n" // (0, sc_0, sc_1)
- "%sc_vec3_012 = OpSpecConstantOp %ivec3 VectorShuffle %sc_vec3_01 %sc_vec3_2 5 1 2\n" // (sc_2, sc_0, sc_1)
- "%sc_ext_0 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 0\n" // sc_2
- "%sc_ext_1 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 1\n" // sc_0
- "%sc_ext_2 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 2\n" // sc_1
- "%sc_sub = OpSpecConstantOp %i32 ISub %sc_ext_0 %sc_ext_1\n" // (sc_2 - sc_0)
- "%sc_final = OpSpecConstantOp %i32 IMul %sc_sub %sc_ext_2\n" // (sc_2 - sc_0) * sc_1
+ "%sc_vec3_0 = OpSpecConstantOp %ivec3 CompositeInsert %sc_0 %ivec3_0 0\n" // (sc_0, 0, 0)
+ "%sc_vec3_1 = OpSpecConstantOp %ivec3 CompositeInsert %sc_1 %ivec3_0 1\n" // (0, sc_1, 0)
+ "%sc_vec3_2 = OpSpecConstantOp %ivec3 CompositeInsert %sc_2 %ivec3_0 2\n" // (0, 0, sc_2)
+ "%sc_vec3_0_s = OpSpecConstantOp %ivec3 VectorShuffle %sc_vec3_0 %vec3_undef 0 0xFFFFFFFF 2\n" // (sc_0, ???, 0)
+ "%sc_vec3_1_s = OpSpecConstantOp %ivec3 VectorShuffle %sc_vec3_1 %vec3_undef 0xFFFFFFFF 1 0\n" // (???, sc_1, 0)
+ "%sc_vec3_2_s = OpSpecConstantOp %ivec3 VectorShuffle %vec3_undef %sc_vec3_2 5 0xFFFFFFFF 5\n" // (sc_2, ???, sc_2)
+ "%sc_vec3_01 = OpSpecConstantOp %ivec3 VectorShuffle %sc_vec3_0_s %sc_vec3_1_s 1 0 4\n" // (0, sc_0, sc_1)
+ "%sc_vec3_012 = OpSpecConstantOp %ivec3 VectorShuffle %sc_vec3_01 %sc_vec3_2_s 5 1 2\n" // (sc_2, sc_0, sc_1)
+ "%sc_ext_0 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 0\n" // sc_2
+ "%sc_ext_1 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 1\n" // sc_0
+ "%sc_ext_2 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 2\n" // sc_1
+ "%sc_sub = OpSpecConstantOp %i32 ISub %sc_ext_0 %sc_ext_1\n" // (sc_2 - sc_0)
+ "%sc_final = OpSpecConstantOp %i32 IMul %sc_sub %sc_ext_2\n" // (sc_2 - sc_0) * sc_1
"%main = OpFunction %void None %voidf\n"
"%label = OpLabel\n"
@@ -3496,12 +3728,16 @@
StageToSpecConstantMap specConstants;
bool hasTessellation;
VkShaderStageFlagBits requiredStages;
+ qpTestResult failResult;
+ string failMessageTemplate; //!< ${reason} in the template will be replaced with a detailed failure message
InstanceContext (const RGBA (&inputs)[4], const RGBA (&outputs)[4], const map<string, string>& testCodeFragments_, const StageToSpecConstantMap& specConstants_)
: testCodeFragments (testCodeFragments_)
, specConstants (specConstants_)
, hasTessellation (false)
, requiredStages (static_cast<VkShaderStageFlagBits>(0))
+ , failResult (QP_TEST_RESULT_FAIL)
+ , failMessageTemplate ("${reason}")
{
inputColors[0] = inputs[0];
inputColors[1] = inputs[1];
@@ -3515,11 +3751,13 @@
}
InstanceContext (const InstanceContext& other)
- : moduleMap (other.moduleMap)
- , testCodeFragments (other.testCodeFragments)
- , specConstants (other.specConstants)
- , hasTessellation (other.hasTessellation)
- , requiredStages (other.requiredStages)
+ : moduleMap (other.moduleMap)
+ , testCodeFragments (other.testCodeFragments)
+ , specConstants (other.specConstants)
+ , hasTessellation (other.hasTessellation)
+ , requiredStages (other.requiredStages)
+ , failResult (other.failResult)
+ , failMessageTemplate (other.failMessageTemplate)
{
inputColors[0] = other.inputColors[0];
inputColors[1] = other.inputColors[1];
@@ -3531,6 +3769,13 @@
outputColors[2] = other.outputColors[2];
outputColors[3] = other.outputColors[3];
}
+
+ string getSpecializedFailMessage (const string& failureReason)
+ {
+ map<string, string> parameters;
+ parameters["reason"] = failureReason;
+ return StringTemplate(failMessageTemplate).specialize(parameters);
+ }
};
// A description of a shader to be used for a single stage of the graphics pipeline.
@@ -3581,7 +3826,13 @@
// by setting up the mapping of modules to their contained shaders and stages.
// The inputs and expected outputs are given by inputColors and outputColors
template<size_t N>
-InstanceContext createInstanceContext (const ShaderElement (&elements)[N], const RGBA (&inputColors)[4], const RGBA (&outputColors)[4], const map<string, string>& testCodeFragments, const StageToSpecConstantMap& specConstants)
+InstanceContext createInstanceContext (const ShaderElement (&elements)[N],
+ const RGBA (&inputColors)[4],
+ const RGBA (&outputColors)[4],
+ const map<string, string>& testCodeFragments,
+ const StageToSpecConstantMap& specConstants,
+ const qpTestResult failResult = QP_TEST_RESULT_FAIL,
+ const string& failMessageTemplate = string())
{
InstanceContext ctx (inputColors, outputColors, testCodeFragments, specConstants);
for (size_t i = 0; i < N; ++i)
@@ -3589,18 +3840,25 @@
ctx.moduleMap[elements[i].moduleName].push_back(std::make_pair(elements[i].entryName, elements[i].stage));
ctx.requiredStages = static_cast<VkShaderStageFlagBits>(ctx.requiredStages | elements[i].stage);
}
+ ctx.failResult = failResult;
+ if (!failMessageTemplate.empty())
+ ctx.failMessageTemplate = failMessageTemplate;
return ctx;
}
template<size_t N>
-inline InstanceContext createInstanceContext (const ShaderElement (&elements)[N], RGBA (&inputColors)[4], const RGBA (&outputColors)[4], const map<string, string>& testCodeFragments)
+inline InstanceContext createInstanceContext (const ShaderElement (&elements)[N],
+ RGBA (&inputColors)[4],
+ const RGBA (&outputColors)[4],
+ const map<string, string>& testCodeFragments)
{
return createInstanceContext(elements, inputColors, outputColors, testCodeFragments, StageToSpecConstantMap());
}
// The same as createInstanceContext above, but with default colors.
template<size_t N>
-InstanceContext createInstanceContext (const ShaderElement (&elements)[N], const map<string, string>& testCodeFragments)
+InstanceContext createInstanceContext (const ShaderElement (&elements)[N],
+ const map<string, string>& testCodeFragments)
{
RGBA defaultColors[4];
getDefaultColors(defaultColors);
@@ -3641,6 +3899,7 @@
\
"%f32 = OpTypeFloat 32\n" \
"%v3f32 = OpTypeVector %f32 3\n" \
+ "%v4i32 = OpTypeVector %i32 4\n" \
"%v4f32 = OpTypeVector %f32 4\n" \
"%v4bool = OpTypeVector %bool 4\n" \
\
@@ -5589,24 +5848,31 @@
const RGBA threshold(1, 1, 1, 1);
const RGBA upperLeft(pixelBuffer.getPixel(1, 1));
if (!tcu::compareThreshold(upperLeft, instance.outputColors[0], threshold))
- return TestStatus::fail("Upper left corner mismatch");
+ return TestStatus(instance.failResult, instance.getSpecializedFailMessage("Upper left corner mismatch"));
const RGBA upperRight(pixelBuffer.getPixel(pixelBuffer.getWidth() - 1, 1));
if (!tcu::compareThreshold(upperRight, instance.outputColors[1], threshold))
- return TestStatus::fail("Upper right corner mismatch");
+ return TestStatus(instance.failResult, instance.getSpecializedFailMessage("Upper right corner mismatch"));
const RGBA lowerLeft(pixelBuffer.getPixel(1, pixelBuffer.getHeight() - 1));
if (!tcu::compareThreshold(lowerLeft, instance.outputColors[2], threshold))
- return TestStatus::fail("Lower left corner mismatch");
+ return TestStatus(instance.failResult, instance.getSpecializedFailMessage("Lower left corner mismatch"));
const RGBA lowerRight(pixelBuffer.getPixel(pixelBuffer.getWidth() - 1, pixelBuffer.getHeight() - 1));
if (!tcu::compareThreshold(lowerRight, instance.outputColors[3], threshold))
- return TestStatus::fail("Lower right corner mismatch");
+ return TestStatus(instance.failResult, instance.getSpecializedFailMessage("Lower right corner mismatch"));
return TestStatus::pass("Rendered output matches input");
}
-void createTestsForAllStages (const std::string& name, const RGBA (&inputColors)[4], const RGBA (&outputColors)[4], const map<string, string>& testCodeFragments, const vector<deInt32>& specConstants, tcu::TestCaseGroup* tests)
+void createTestsForAllStages (const std::string& name,
+ const RGBA (&inputColors)[4],
+ const RGBA (&outputColors)[4],
+ const map<string, string>& testCodeFragments,
+ const vector<deInt32>& specConstants,
+ tcu::TestCaseGroup* tests,
+ const qpTestResult failResult = QP_TEST_RESULT_FAIL,
+ const string& failMessageTemplate = string())
{
const ShaderElement vertFragPipelineStages[] =
{
@@ -5633,33 +5899,39 @@
specConstantMap[VK_SHADER_STAGE_VERTEX_BIT] = specConstants;
addFunctionCaseWithPrograms<InstanceContext>(tests, name + "_vert", "", addShaderCodeCustomVertex, runAndVerifyDefaultPipeline,
- createInstanceContext(vertFragPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap));
+ createInstanceContext(vertFragPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap, failResult, failMessageTemplate));
specConstantMap.clear();
specConstantMap[VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT] = specConstants;
addFunctionCaseWithPrograms<InstanceContext>(tests, name + "_tessc", "", addShaderCodeCustomTessControl, runAndVerifyDefaultPipeline,
- createInstanceContext(tessPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap));
+ createInstanceContext(tessPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap, failResult, failMessageTemplate));
specConstantMap.clear();
specConstantMap[VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT] = specConstants;
addFunctionCaseWithPrograms<InstanceContext>(tests, name + "_tesse", "", addShaderCodeCustomTessEval, runAndVerifyDefaultPipeline,
- createInstanceContext(tessPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap));
+ createInstanceContext(tessPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap, failResult, failMessageTemplate));
specConstantMap.clear();
specConstantMap[VK_SHADER_STAGE_GEOMETRY_BIT] = specConstants;
addFunctionCaseWithPrograms<InstanceContext>(tests, name + "_geom", "", addShaderCodeCustomGeometry, runAndVerifyDefaultPipeline,
- createInstanceContext(geomPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap));
+ createInstanceContext(geomPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap, failResult, failMessageTemplate));
specConstantMap.clear();
specConstantMap[VK_SHADER_STAGE_FRAGMENT_BIT] = specConstants;
addFunctionCaseWithPrograms<InstanceContext>(tests, name + "_frag", "", addShaderCodeCustomFragment, runAndVerifyDefaultPipeline,
- createInstanceContext(vertFragPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap));
+ createInstanceContext(vertFragPipelineStages, inputColors, outputColors, testCodeFragments, specConstantMap, failResult, failMessageTemplate));
}
-inline void createTestsForAllStages (const std::string& name, const RGBA (&inputColors)[4], const RGBA (&outputColors)[4], const map<string, string>& testCodeFragments, tcu::TestCaseGroup* tests)
+inline void createTestsForAllStages (const string& name,
+ const RGBA (&inputColors)[4],
+ const RGBA (&outputColors)[4],
+ const map<string, string>& testCodeFragments,
+ tcu::TestCaseGroup* tests,
+ const qpTestResult failResult = QP_TEST_RESULT_FAIL,
+ const string& failMessageTemplate = string())
{
vector<deInt32> noSpecConstants;
- createTestsForAllStages(name, inputColors, outputColors, testCodeFragments, noSpecConstants, tests);
+ createTestsForAllStages(name, inputColors, outputColors, testCodeFragments, noSpecConstants, tests, failResult, failMessageTemplate);
}
} // anonymous
@@ -6562,23 +6834,26 @@
"OpDecorate %sc_2 SpecId 2\n";
const char typesAndConstants2[] =
- "%v3i32 = OpTypeVector %i32 3\n"
-
- "%sc_0 = OpSpecConstant %i32 0\n"
- "%sc_1 = OpSpecConstant %i32 0\n"
- "%sc_2 = OpSpecConstant %i32 0\n"
-
+ "%v3i32 = OpTypeVector %i32 3\n"
"%vec3_0 = OpConstantComposite %v3i32 %c_i32_0 %c_i32_0 %c_i32_0\n"
- "%sc_vec3_0 = OpSpecConstantOp %v3i32 CompositeInsert %sc_0 %vec3_0 0\n" // (sc_0, 0, 0)
- "%sc_vec3_1 = OpSpecConstantOp %v3i32 CompositeInsert %sc_1 %vec3_0 1\n" // (0, sc_1, 0)
- "%sc_vec3_2 = OpSpecConstantOp %v3i32 CompositeInsert %sc_2 %vec3_0 2\n" // (0, 0, sc_2)
- "%sc_vec3_01 = OpSpecConstantOp %v3i32 VectorShuffle %sc_vec3_0 %sc_vec3_1 1 0 4\n" // (0, sc_0, sc_1)
- "%sc_vec3_012 = OpSpecConstantOp %v3i32 VectorShuffle %sc_vec3_01 %sc_vec3_2 5 1 2\n" // (sc_2, sc_0, sc_1)
- "%sc_ext_0 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 0\n" // sc_2
- "%sc_ext_1 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 1\n" // sc_0
- "%sc_ext_2 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 2\n" // sc_1
- "%sc_sub = OpSpecConstantOp %i32 ISub %sc_ext_0 %sc_ext_1\n" // (sc_2 - sc_0)
- "%sc_final = OpSpecConstantOp %i32 IMul %sc_sub %sc_ext_2\n"; // (sc_2 - sc_0) * sc_1
+ "%vec3_undef = OpUndef %v3i32\n"
+
+ "%sc_0 = OpSpecConstant %i32 0\n"
+ "%sc_1 = OpSpecConstant %i32 0\n"
+ "%sc_2 = OpSpecConstant %i32 0\n"
+ "%sc_vec3_0 = OpSpecConstantOp %v3i32 CompositeInsert %sc_0 %vec3_0 0\n" // (sc_0, 0, 0)
+ "%sc_vec3_1 = OpSpecConstantOp %v3i32 CompositeInsert %sc_1 %vec3_0 1\n" // (0, sc_1, 0)
+ "%sc_vec3_2 = OpSpecConstantOp %v3i32 CompositeInsert %sc_2 %vec3_0 2\n" // (0, 0, sc_2)
+ "%sc_vec3_0_s = OpSpecConstantOp %v3i32 VectorShuffle %sc_vec3_0 %vec3_undef 0 0xFFFFFFFF 2\n" // (sc_0, ???, 0)
+ "%sc_vec3_1_s = OpSpecConstantOp %v3i32 VectorShuffle %sc_vec3_1 %vec3_undef 0xFFFFFFFF 1 0\n" // (???, sc_1, 0)
+ "%sc_vec3_2_s = OpSpecConstantOp %v3i32 VectorShuffle %vec3_undef %sc_vec3_2 5 0xFFFFFFFF 5\n" // (sc_2, ???, sc_2)
+ "%sc_vec3_01 = OpSpecConstantOp %v3i32 VectorShuffle %sc_vec3_0_s %sc_vec3_1_s 1 0 4\n" // (0, sc_0, sc_1)
+ "%sc_vec3_012 = OpSpecConstantOp %v3i32 VectorShuffle %sc_vec3_01 %sc_vec3_2_s 5 1 2\n" // (sc_2, sc_0, sc_1)
+ "%sc_ext_0 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 0\n" // sc_2
+ "%sc_ext_1 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 1\n" // sc_0
+ "%sc_ext_2 = OpSpecConstantOp %i32 CompositeExtract %sc_vec3_012 2\n" // sc_1
+ "%sc_sub = OpSpecConstantOp %i32 ISub %sc_ext_0 %sc_ext_1\n" // (sc_2 - sc_0)
+ "%sc_final = OpSpecConstantOp %i32 IMul %sc_sub %sc_ext_2\n"; // (sc_2 - sc_0) * sc_1
const char function2[] =
"%test_code = OpFunction %v4f32 None %v4f32_function\n"
@@ -7916,6 +8191,172 @@
return testGroup.release();
}
+// Test for the OpSRem instruction.
+tcu::TestCaseGroup* createSRemTests(tcu::TestContext& testCtx)
+{
+ de::MovePtr<tcu::TestCaseGroup> testGroup(new tcu::TestCaseGroup(testCtx, "srem", "OpSRem"));
+ map<string, string> fragments;
+
+ fragments["pre_main"] =
+ "%c_f32_255 = OpConstant %f32 255.0\n"
+ "%c_i32_128 = OpConstant %i32 128\n"
+ "%c_i32_255 = OpConstant %i32 255\n"
+ "%c_v4f32_255 = OpConstantComposite %v4f32 %c_f32_255 %c_f32_255 %c_f32_255 %c_f32_255 \n"
+ "%c_v4f32_0_5 = OpConstantComposite %v4f32 %c_f32_0_5 %c_f32_0_5 %c_f32_0_5 %c_f32_0_5 \n"
+ "%c_v4i32_128 = OpConstantComposite %v4i32 %c_i32_128 %c_i32_128 %c_i32_128 %c_i32_128 \n";
+
+ // The test does the following.
+ // ivec4 ints = int(param1 * 255.0 + 0.5) - 128;
+ // ivec4 result = ivec4(srem(ints.x, ints.y), srem(ints.y, ints.z), srem(ints.z, ints.x), 255);
+ // return float(result + 128) / 255.0;
+ fragments["testfun"] =
+ "%test_code = OpFunction %v4f32 None %v4f32_function\n"
+ "%param1 = OpFunctionParameter %v4f32\n"
+ "%label_testfun = OpLabel\n"
+ "%div255 = OpFMul %v4f32 %param1 %c_v4f32_255\n"
+ "%add0_5 = OpFAdd %v4f32 %div255 %c_v4f32_0_5\n"
+ "%uints_in = OpConvertFToS %v4i32 %add0_5\n"
+ "%ints_in = OpISub %v4i32 %uints_in %c_v4i32_128\n"
+ "%x_in = OpCompositeExtract %i32 %ints_in 0\n"
+ "%y_in = OpCompositeExtract %i32 %ints_in 1\n"
+ "%z_in = OpCompositeExtract %i32 %ints_in 2\n"
+ "%x_out = OpSRem %i32 %x_in %y_in\n"
+ "%y_out = OpSRem %i32 %y_in %z_in\n"
+ "%z_out = OpSRem %i32 %z_in %x_in\n"
+ "%ints_out = OpCompositeConstruct %v4i32 %x_out %y_out %z_out %c_i32_255\n"
+ "%ints_offset = OpIAdd %v4i32 %ints_out %c_v4i32_128\n"
+ "%f_ints_offset = OpConvertSToF %v4f32 %ints_offset\n"
+ "%float_out = OpFDiv %v4f32 %f_ints_offset %c_v4f32_255\n"
+ "OpReturnValue %float_out\n"
+ "OpFunctionEnd\n";
+
+ const struct CaseParams
+ {
+ const char* name;
+ const char* failMessageTemplate; // customized status message
+ qpTestResult failResult; // override status on failure
+ int operands[4][3]; // four (x, y, z) vectors of operands
+ int results[4][3]; // four (x, y, z) vectors of results
+ } cases[] =
+ {
+ {
+ "positive",
+ "${reason}",
+ QP_TEST_RESULT_FAIL,
+ { { 5, 12, 17 }, { 5, 5, 7 }, { 75, 8, 81 }, { 25, 60, 100 } }, // operands
+ { { 5, 12, 2 }, { 0, 5, 2 }, { 3, 8, 6 }, { 25, 60, 0 } }, // results
+ },
+ {
+ "all",
+ "Inconsistent results, but within specification: ${reason}",
+ QP_TEST_RESULT_PASS, // negative operands, not required by the spec
+ { { 5, 12, -17 }, { -5, -5, 7 }, { 75, 8, -81 }, { 25, -60, 100 } }, // operands
+ { { 5, 12, -2 }, { 0, -5, 2 }, { 3, 8, -6 }, { 25, -60, 0 } }, // results
+ },
+ };
+ // If either operand is negative the result is undefined. Some implementations may still return correct values.
+
+ for (int caseNdx = 0; caseNdx < DE_LENGTH_OF_ARRAY(cases); ++caseNdx)
+ {
+ const CaseParams& params = cases[caseNdx];
+ RGBA inputColors[4];
+ RGBA outputColors[4];
+
+ for (int i = 0; i < 4; ++i)
+ {
+ inputColors [i] = RGBA(params.operands[i][0] + 128, params.operands[i][1] + 128, params.operands[i][2] + 128, 255);
+ outputColors[i] = RGBA(params.results [i][0] + 128, params.results [i][1] + 128, params.results [i][2] + 128, 255);
+ }
+
+ createTestsForAllStages(params.name, inputColors, outputColors, fragments, testGroup.get(), params.failResult, params.failMessageTemplate);
+ }
+
+ return testGroup.release();
+}
+
+// Test for the OpSMod instruction.
+tcu::TestCaseGroup* createSModTests(tcu::TestContext& testCtx)
+{
+ de::MovePtr<tcu::TestCaseGroup> testGroup(new tcu::TestCaseGroup(testCtx, "smod", "OpSMod"));
+ map<string, string> fragments;
+
+ fragments["pre_main"] =
+ "%c_f32_255 = OpConstant %f32 255.0\n"
+ "%c_i32_128 = OpConstant %i32 128\n"
+ "%c_i32_255 = OpConstant %i32 255\n"
+ "%c_v4f32_255 = OpConstantComposite %v4f32 %c_f32_255 %c_f32_255 %c_f32_255 %c_f32_255 \n"
+ "%c_v4f32_0_5 = OpConstantComposite %v4f32 %c_f32_0_5 %c_f32_0_5 %c_f32_0_5 %c_f32_0_5 \n"
+ "%c_v4i32_128 = OpConstantComposite %v4i32 %c_i32_128 %c_i32_128 %c_i32_128 %c_i32_128 \n";
+
+ // The test does the following.
+ // ivec4 ints = int(param1 * 255.0 + 0.5) - 128;
+ // ivec4 result = ivec4(smod(ints.x, ints.y), smod(ints.y, ints.z), smod(ints.z, ints.x), 255);
+ // return float(result + 128) / 255.0;
+ fragments["testfun"] =
+ "%test_code = OpFunction %v4f32 None %v4f32_function\n"
+ "%param1 = OpFunctionParameter %v4f32\n"
+ "%label_testfun = OpLabel\n"
+ "%div255 = OpFMul %v4f32 %param1 %c_v4f32_255\n"
+ "%add0_5 = OpFAdd %v4f32 %div255 %c_v4f32_0_5\n"
+ "%uints_in = OpConvertFToS %v4i32 %add0_5\n"
+ "%ints_in = OpISub %v4i32 %uints_in %c_v4i32_128\n"
+ "%x_in = OpCompositeExtract %i32 %ints_in 0\n"
+ "%y_in = OpCompositeExtract %i32 %ints_in 1\n"
+ "%z_in = OpCompositeExtract %i32 %ints_in 2\n"
+ "%x_out = OpSMod %i32 %x_in %y_in\n"
+ "%y_out = OpSMod %i32 %y_in %z_in\n"
+ "%z_out = OpSMod %i32 %z_in %x_in\n"
+ "%ints_out = OpCompositeConstruct %v4i32 %x_out %y_out %z_out %c_i32_255\n"
+ "%ints_offset = OpIAdd %v4i32 %ints_out %c_v4i32_128\n"
+ "%f_ints_offset = OpConvertSToF %v4f32 %ints_offset\n"
+ "%float_out = OpFDiv %v4f32 %f_ints_offset %c_v4f32_255\n"
+ "OpReturnValue %float_out\n"
+ "OpFunctionEnd\n";
+
+ const struct CaseParams
+ {
+ const char* name;
+ const char* failMessageTemplate; // customized status message
+ qpTestResult failResult; // override status on failure
+ int operands[4][3]; // four (x, y, z) vectors of operands
+ int results[4][3]; // four (x, y, z) vectors of results
+ } cases[] =
+ {
+ {
+ "positive",
+ "${reason}",
+ QP_TEST_RESULT_FAIL,
+ { { 5, 12, 17 }, { 5, 5, 7 }, { 75, 8, 81 }, { 25, 60, 100 } }, // operands
+ { { 5, 12, 2 }, { 0, 5, 2 }, { 3, 8, 6 }, { 25, 60, 0 } }, // results
+ },
+ {
+ "all",
+ "Inconsistent results, but within specification: ${reason}",
+ QP_TEST_RESULT_PASS, // negative operands, not required by the spec
+ { { 5, 12, -17 }, { -5, -5, 7 }, { 75, 8, -81 }, { 25, -60, 100 } }, // operands
+ { { 5, -5, 3 }, { 0, 2, -3 }, { 3, -73, 69 }, { -35, 40, 0 } }, // results
+ },
+ };
+ // If either operand is negative the result is undefined. Some implementations may still return correct values.
+
+ for (int caseNdx = 0; caseNdx < DE_LENGTH_OF_ARRAY(cases); ++caseNdx)
+ {
+ const CaseParams& params = cases[caseNdx];
+ RGBA inputColors[4];
+ RGBA outputColors[4];
+
+ for (int i = 0; i < 4; ++i)
+ {
+ inputColors [i] = RGBA(params.operands[i][0] + 128, params.operands[i][1] + 128, params.operands[i][2] + 128, 255);
+ outputColors[i] = RGBA(params.results [i][0] + 128, params.results [i][1] + 128, params.results [i][2] + 128, 255);
+ }
+
+ createTestsForAllStages(params.name, inputColors, outputColors, fragments, testGroup.get(), params.failResult, params.failMessageTemplate);
+ }
+
+ return testGroup.release();
+}
+
enum IntegerType
{
INTEGER_TYPE_SIGNED_16,
@@ -8930,6 +9371,41 @@
return group.release();
}
+tcu::TestCaseGroup* createOpNopTests (tcu::TestContext& testCtx)
+{
+ de::MovePtr<tcu::TestCaseGroup> testGroup (new tcu::TestCaseGroup(testCtx, "opnop", "Test OpNop"));
+ RGBA defaultColors[4];
+ map<string, string> opNopFragments;
+
+ getDefaultColors(defaultColors);
+
+ opNopFragments["testfun"] =
+ "%test_code = OpFunction %v4f32 None %v4f32_function\n"
+ "%param1 = OpFunctionParameter %v4f32\n"
+ "%label_testfun = OpLabel\n"
+ "OpNop\n"
+ "OpNop\n"
+ "OpNop\n"
+ "OpNop\n"
+ "OpNop\n"
+ "OpNop\n"
+ "OpNop\n"
+ "OpNop\n"
+ "%a = OpVectorExtractDynamic %f32 %param1 %c_i32_0\n"
+ "%b = OpFAdd %f32 %a %a\n"
+ "OpNop\n"
+ "%c = OpFSub %f32 %b %a\n"
+ "%ret = OpVectorInsertDynamic %v4f32 %param1 %c %c_i32_0\n"
+ "OpNop\n"
+ "OpNop\n"
+ "OpReturnValue %ret\n"
+ "OpFunctionEnd\n";
+
+ createTestsForAllStages("opnop", defaultColors, defaultColors, opNopFragments, testGroup.get());
+
+ return testGroup.release();
+}
+
tcu::TestCaseGroup* createInstructionTests (tcu::TestContext& testCtx)
{
de::MovePtr<tcu::TestCaseGroup> instructionTests (new tcu::TestCaseGroup(testCtx, "instruction", "Instructions with special opcodes/operands"));
@@ -8962,43 +9438,15 @@
computeTests->addChild(createOpUnreachableGroup(testCtx));
computeTests ->addChild(createOpQuantizeToF16Group(testCtx));
computeTests ->addChild(createOpFRemGroup(testCtx));
+ computeTests->addChild(createOpSRemGroup(testCtx));
+ computeTests->addChild(createOpSModGroup(testCtx));
computeTests->addChild(createSConvertTests(testCtx));
computeTests->addChild(createUConvertTests(testCtx));
computeTests->addChild(createOpCompositeInsertGroup(testCtx));
computeTests->addChild(createOpInBoundsAccessChainGroup(testCtx));
computeTests->addChild(createShaderDefaultOutputGroup(testCtx));
- RGBA defaultColors[4];
- getDefaultColors(defaultColors);
-
- de::MovePtr<tcu::TestCaseGroup> opnopTests (new tcu::TestCaseGroup(testCtx, "opnop", "Test OpNop"));
- map<string, string> opNopFragments;
- opNopFragments["testfun"] =
- "%test_code = OpFunction %v4f32 None %v4f32_function\n"
- "%param1 = OpFunctionParameter %v4f32\n"
- "%label_testfun = OpLabel\n"
- "OpNop\n"
- "OpNop\n"
- "OpNop\n"
- "OpNop\n"
- "OpNop\n"
- "OpNop\n"
- "OpNop\n"
- "OpNop\n"
- "%a = OpVectorExtractDynamic %f32 %param1 %c_i32_0\n"
- "%b = OpFAdd %f32 %a %a\n"
- "OpNop\n"
- "%c = OpFSub %f32 %b %a\n"
- "%ret = OpVectorInsertDynamic %v4f32 %param1 %c %c_i32_0\n"
- "OpNop\n"
- "OpNop\n"
- "OpReturnValue %ret\n"
- "OpFunctionEnd\n"
- ;
- createTestsForAllStages("opnop", defaultColors, defaultColors, opNopFragments, opnopTests.get());
-
-
- graphicsTests->addChild(opnopTests.release());
+ graphicsTests->addChild(createOpNopTests(testCtx));
graphicsTests->addChild(createOpSourceTests(testCtx));
graphicsTests->addChild(createOpSourceContinuedTests(testCtx));
graphicsTests->addChild(createOpLineTests(testCtx));
@@ -9019,6 +9467,8 @@
graphicsTests->addChild(createBarrierTests(testCtx));
graphicsTests->addChild(createDecorationGroupTests(testCtx));
graphicsTests->addChild(createFRemTests(testCtx));
+ graphicsTests->addChild(createSRemTests(testCtx));
+ graphicsTests->addChild(createSModTests(testCtx));
instructionTests->addChild(computeTests.release());
instructionTests->addChild(graphicsTests.release());
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp
index 7d1e94f..2393c5f 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp
@@ -217,7 +217,7 @@
const tcu::IVec4 formatBitDepth = getTextureFormatBitDepth(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
const tcu::PixelFormat pixelFormat (formatBitDepth[0], formatBitDepth[1], formatBitDepth[2], formatBitDepth[3]);
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_VULKAN);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 18;
@@ -434,7 +434,7 @@
const tcu::IVec4 formatBitDepth = getTextureFormatBitDepth(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
const tcu::PixelFormat pixelFormat (formatBitDepth[0], formatBitDepth[1], formatBitDepth[2], formatBitDepth[3]);
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_VULKAN);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 10;
@@ -635,7 +635,7 @@
const tcu::IVec4 formatBitDepth = getTextureFormatBitDepth(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
const tcu::PixelFormat pixelFormat (formatBitDepth[0], formatBitDepth[1], formatBitDepth[2], formatBitDepth[3]);
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_VULKAN);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 18;
@@ -813,7 +813,7 @@
const tcu::IVec4 formatBitDepth = getTextureFormatBitDepth(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
const tcu::PixelFormat pixelFormat (formatBitDepth[0], formatBitDepth[1], formatBitDepth[2], formatBitDepth[3]);
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_VULKAN);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 18;
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureMipmapTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureMipmapTests.cpp
index bb5558e..9bc4c4a 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureMipmapTests.cpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureMipmapTests.cpp
@@ -335,7 +335,7 @@
tcu::Surface referenceFrame (viewportWidth, viewportHeight);
tcu::Surface errorMask (viewportWidth, viewportHeight);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_VULKAN);
int numFailedPixels = 0;
lookupPrec.coordBits = tcu::IVec3(20, 20, 0);
@@ -569,7 +569,7 @@
tcu::Surface errorMask (viewportWidth, viewportHeight);
int numFailedPixels = 0;
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_VULKAN);
// Params for rendering reference
refParams.sampler = util::createSampler(m_testParameters.wrapS, m_testParameters.wrapT, m_testParameters.minFilter, m_testParameters.magFilter);
@@ -849,7 +849,7 @@
tcu::Surface referenceFrame (viewportWidth, viewportHeight);
tcu::Surface errorMask (viewportWidth, viewportHeight);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_VULKAN);
int numFailedPixels = 0;
lookupPrec.coordBits = tcu::IVec3(20, 20, 20);
@@ -1032,7 +1032,7 @@
tcu::Surface referenceFrame (viewportWidth, viewportHeight);
tcu::Surface errorMask (viewportWidth, viewportHeight);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_VULKAN);
int numFailedPixels = 0;
lookupPrec.coordBits = tcu::IVec3(20, 20, 0);
@@ -1289,7 +1289,7 @@
tcu::Surface errorMask (viewportWidth, viewportHeight);
int numFailedPixels = 0;
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_VULKAN);
// Params for rendering reference
refParams.sampler = util::createSampler(wrapS, wrapT, m_testParameters.minFilter, magFilter);
@@ -1557,7 +1557,7 @@
tcu::Surface referenceFrame (viewportWidth, viewportHeight);
tcu::Surface errorMask (viewportWidth, viewportHeight);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_VULKAN);
int numFailedPixels = 0;
lookupPrec.coordBits = tcu::IVec3(20, 20, 20);
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureShadowTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureShadowTests.cpp
index 62874a5..ab294d8 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureShadowTests.cpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureShadowTests.cpp
@@ -346,7 +346,7 @@
{
const tcu::PixelFormat pixelFormat = getPixelFormat(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_VULKAN);
tcu::TexComparePrecision texComparePrecision;
lodPrecision.derivateBits = 18;
@@ -562,7 +562,7 @@
{
const tcu::PixelFormat pixelFormat = getPixelFormat(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_VULKAN);
tcu::TexComparePrecision texComparePrecision;
lodPrecision.derivateBits = 10;
@@ -774,7 +774,7 @@
{
const tcu::PixelFormat pixelFormat = getPixelFormat(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_VULKAN);
tcu::TexComparePrecision texComparePrecision;
lodPrecision.derivateBits = 18;
diff --git a/external/vulkancts/mustpass/1.0.2/src/excluded-tests.txt b/external/vulkancts/mustpass/1.0.2/src/excluded-tests.txt
index 44d6993..cc81137 100644
--- a/external/vulkancts/mustpass/1.0.2/src/excluded-tests.txt
+++ b/external/vulkancts/mustpass/1.0.2/src/excluded-tests.txt
@@ -279,9 +279,6 @@
dEQP-VK.clipping.clip_volume.clipped.wide_lines_axis_aligned
dEQP-VK.clipping.clip_volume.clipped.wide_lines_diagonal
-# Vulkan issue 382: vkCmdBlitImage filtering behavior underspecified
-dEQP-VK.api.copy_and_blit.blit_image.all_formats*_nearest
-
# Issue 431: Excluded copies and blitting tests
dEQP-VK.api.copy_and_blit.blit_image.simple_tests.scaling_and_offset_b8g8r8a8_unorm_linear
@@ -291,9 +288,6 @@
# New tests from AOSP
dEQP-VK.texture.explicit_lod.*
-# Exclude tests which are not on the Android CTS mustpass list
-dEQP-VK.texture.mipmap.2d.projected.*
-
# Vulkan CTS issue 583
dEQP-VK.memory.pipeline_barrier.host_write_uniform_texel_buffer.1048576
dEQP-VK.memory.pipeline_barrier.host_write_storage_texel_buffer.1048576
diff --git a/external/vulkancts/mustpass/1.0.2/vk-default.txt b/external/vulkancts/mustpass/1.0.2/vk-default.txt
index ab4b75b7..3c0acc5 100644
--- a/external/vulkancts/mustpass/1.0.2/vk-default.txt
+++ b/external/vulkancts/mustpass/1.0.2/vk-default.txt
@@ -8385,4679 +8385,9937 @@
dEQP-VK.api.copy_and_blit.blit_image.simple_tests.without_scaling_partial_linear
dEQP-VK.api.copy_and_blit.blit_image.simple_tests.without_scaling_partial_r32_sfloat_linear
dEQP-VK.api.copy_and_blit.blit_image.simple_tests.without_scaling_partial_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uint_pack32_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uint_pack32_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uint_pack32_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r8g8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r8g8b8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_b8g8r8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r8g8b8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_b8g8r8a8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_a8b8g8r8_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_a2r10g10b10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_a2b10g10r10_uint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r16g16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r16g16b16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r16g16b16a16_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r32g32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r32g32b32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_uint_r32g32b32a32_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sint_pack32_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sint_pack32_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sint_pack32_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r8g8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r8g8b8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_b8g8r8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r8g8b8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_b8g8r8a8_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_a8b8g8r8_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_a2r10g10b10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_a2b10g10r10_sint_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r16g16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r16g16b16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r16g16b16a16_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r32g32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r32g32b32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sint_r32g32b32a32_sint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4_unorm_pack8_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r4g4b4a4_unorm_pack16_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b4g4r4a4_unorm_pack16_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g6b5_unorm_pack16_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g6r5_unorm_pack16_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r5g5b5a1_unorm_pack16_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b5g5r5a1_unorm_pack16_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a1r5g5b5_unorm_pack16_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_unorm_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_snorm_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_uscaled_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_sscaled_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_unorm_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_snorm_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_uscaled_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2r10g10b10_sscaled_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_unorm_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_snorm_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_uscaled_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a2b10g10r10_sscaled_pack32_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16_sfloat_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16_sfloat_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16_sfloat_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_unorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_snorm_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_uscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sscaled_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r16g16b16a16_sfloat_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32_sfloat_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32_sfloat_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32_sfloat_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r4g4_unorm_pack8_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r4g4_unorm_pack8_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r4g4b4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r4g4b4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b4g4r4a4_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b4g4r4a4_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r5g6b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r5g6b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b5g6r5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b5g6r5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r5g5b5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r5g5b5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b5g5r5a1_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b5g5r5a1_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a1r5g5b5_unorm_pack16_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a1r5g5b5_unorm_pack16_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r8g8b8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8a8_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8a8_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8a8_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8a8_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8a8_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8a8_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8a8_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_b8g8r8a8_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a8b8g8r8_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a8b8g8r8_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a8b8g8r8_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a8b8g8r8_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a8b8g8r8_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a8b8g8r8_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a8b8g8r8_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a8b8g8r8_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2r10g10b10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2r10g10b10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2r10g10b10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2r10g10b10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2r10g10b10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2r10g10b10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2r10g10b10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2r10g10b10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2b10g10r10_unorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2b10g10r10_unorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2b10g10r10_snorm_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2b10g10r10_snorm_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2b10g10r10_uscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2b10g10r10_uscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2b10g10r10_sscaled_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_a2b10g10r10_sscaled_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_unorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_unorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_snorm_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_snorm_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_uscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_uscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_sscaled_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_sscaled_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r16g16b16a16_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r32g32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r32g32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r32g32b32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r32g32b32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r32g32b32a32_sfloat_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r32g32b32a32_sfloat_r32g32b32a32_sfloat_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_r8g8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_r8g8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_r8g8b8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_r8g8b8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_b8g8r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_b8g8r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_r8g8b8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_r8g8b8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_b8g8r8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_b8g8r8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_a8b8g8r8_srgb_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8_srgb_a8b8g8r8_srgb_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_r8g8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_r8g8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_r8g8b8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_r8g8b8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_b8g8r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_b8g8r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_r8g8b8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_r8g8b8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_b8g8r8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_b8g8r8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_a8b8g8r8_srgb_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8_srgb_a8b8g8r8_srgb_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_r8g8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_r8g8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_r8g8b8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_r8g8b8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_b8g8r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_b8g8r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_r8g8b8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_r8g8b8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_b8g8r8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_b8g8r8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_a8b8g8r8_srgb_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8_srgb_a8b8g8r8_srgb_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_r8g8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_r8g8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_r8g8b8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_r8g8b8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_b8g8r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_b8g8r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_r8g8b8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_r8g8b8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_b8g8r8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_b8g8r8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_a8b8g8r8_srgb_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8_srgb_a8b8g8r8_srgb_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_r8g8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_r8g8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_r8g8b8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_r8g8b8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_b8g8r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_b8g8r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_r8g8b8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_r8g8b8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_b8g8r8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_b8g8r8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_a8b8g8r8_srgb_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.r8g8b8a8_srgb_a8b8g8r8_srgb_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_r8g8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_r8g8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_r8g8b8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_r8g8b8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_b8g8r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_b8g8r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_r8g8b8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_r8g8b8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_b8g8r8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_b8g8r8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_a8b8g8r8_srgb_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.b8g8r8a8_srgb_a8b8g8r8_srgb_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_r8g8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_r8g8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_r8g8b8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_r8g8b8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_b8g8r8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_b8g8r8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_r8g8b8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_r8g8b8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_b8g8r8a8_srgb_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_b8g8r8a8_srgb_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_a8b8g8r8_srgb_pack32_nearest
dEQP-VK.api.copy_and_blit.blit_image.all_formats.a8b8g8r8_srgb_pack32_a8b8g8r8_srgb_pack32_linear
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d16_unorm_d16_unorm_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.x8_d24_unorm_pack32_x8_d24_unorm_pack32_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d32_sfloat_d32_sfloat_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.s8_uint_s8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d16_unorm_s8_uint_d16_unorm_s8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d24_unorm_s8_uint_d24_unorm_s8_uint_nearest
+dEQP-VK.api.copy_and_blit.blit_image.all_formats.d32_sfloat_s8_uint_d32_sfloat_s8_uint_nearest
dEQP-VK.api.copy_and_blit.resolve_image.whole_2_bit
dEQP-VK.api.copy_and_blit.resolve_image.whole_4_bit
dEQP-VK.api.copy_and_blit.resolve_image.whole_8_bit
@@ -13088,6 +18346,42 @@
dEQP-VK.api.copy_and_blit.resolve_image.whole_array_image_16_bit
dEQP-VK.api.copy_and_blit.resolve_image.whole_array_image_32_bit
dEQP-VK.api.copy_and_blit.resolve_image.whole_array_image_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_266_256_1_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_512_1_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_src_256_256_11_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_266_256_1_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_512_1_64_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_2_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_4_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_8_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_16_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_32_bit
+dEQP-VK.api.copy_and_blit.resolve_image.diff_image_size_dst_256_256_11_64_bit
dEQP-VK.api.image_clearing.clear_color_image.1d_r4g4_unorm_pack8
dEQP-VK.api.image_clearing.clear_color_image.1d_r4g4b4a4_unorm_pack16
dEQP-VK.api.image_clearing.clear_color_image.1d_b4g4r4a4_unorm_pack16
@@ -14218,6 +19512,8 @@
dEQP-VK.api.granularity.in_render_pass.d16_unorm_s8_uint
dEQP-VK.api.granularity.in_render_pass.d24_unorm_s8_uint
dEQP-VK.api.granularity.in_render_pass.d32_sfloat_s8_uint
+dEQP-VK.api.get_memory_commitment.memory_commitment
+dEQP-VK.api.get_memory_commitment.memory_commitment_allocate_only
dEQP-VK.memory.allocation.basic.size_64.forward.count_1
dEQP-VK.memory.allocation.basic.size_64.forward.count_10
dEQP-VK.memory.allocation.basic.size_64.forward.count_100
@@ -84110,6 +89406,82 @@
dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_16
dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_32
dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_id.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.distribution.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_position.correctness.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.bit_count.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.correct_bit.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.write.137_191_1.samples_32
dEQP-VK.pipeline.vertex_input.single_attribute.float_as_r8_unorm_rate_vertex
dEQP-VK.pipeline.vertex_input.single_attribute.float_as_r8_unorm_rate_instance
dEQP-VK.pipeline.vertex_input.single_attribute.float_as_r8_snorm_rate_vertex
@@ -91718,6 +97090,10 @@
dEQP-VK.spirv_assembly.instruction.compute.opquantize.exact
dEQP-VK.spirv_assembly.instruction.compute.opquantize.rounded
dEQP-VK.spirv_assembly.instruction.compute.opfrem.all
+dEQP-VK.spirv_assembly.instruction.compute.opsrem.positive
+dEQP-VK.spirv_assembly.instruction.compute.opsrem.all
+dEQP-VK.spirv_assembly.instruction.compute.opsmod.positive
+dEQP-VK.spirv_assembly.instruction.compute.opsmod.all
dEQP-VK.spirv_assembly.instruction.compute.sconvert.int16_to_int32
dEQP-VK.spirv_assembly.instruction.compute.sconvert.int16_to_int64
dEQP-VK.spirv_assembly.instruction.compute.sconvert.int32_to_int64
@@ -92603,6 +97979,26 @@
dEQP-VK.spirv_assembly.instruction.graphics.frem.frem_tesse
dEQP-VK.spirv_assembly.instruction.graphics.frem.frem_geom
dEQP-VK.spirv_assembly.instruction.graphics.frem.frem_frag
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_vert
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_geom
+dEQP-VK.spirv_assembly.instruction.graphics.srem.positive_frag
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_vert
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_geom
+dEQP-VK.spirv_assembly.instruction.graphics.srem.all_frag
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_vert
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_geom
+dEQP-VK.spirv_assembly.instruction.graphics.smod.positive_frag
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_vert
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_geom
+dEQP-VK.spirv_assembly.instruction.graphics.smod.all_frag
dEQP-VK.glsl.arrays.constructor.float3_vertex
dEQP-VK.glsl.arrays.constructor.float3_fragment
dEQP-VK.glsl.arrays.constructor.float4_vertex
@@ -103931,6 +109327,42 @@
dEQP-VK.glsl.texture_functions.texture.sampler3d_bias_float_fragment
dEQP-VK.glsl.texture_functions.texture.isampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.texture.usampler3d_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texture.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texture.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texture.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1d_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1d_bias_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isampler1d_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.usampler1d_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texture.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texture.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texture.usampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darray_bias_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isampler1darray_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.usampler1darray_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_float_vertex
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texture.isamplercubearray_fragment
+dEQP-VK.glsl.texture_functions.texture.usamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texture.usamplercubearray_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearray_bias_float_fragment
+dEQP-VK.glsl.texture_functions.texture.isamplercubearray_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.usamplercubearray_bias_fragment
dEQP-VK.glsl.texture_functions.texture.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texture.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texture.sparse_sampler2dshadow_fragment
@@ -103945,6 +109377,13 @@
dEQP-VK.glsl.texture_functions.texture.samplercubeshadow_bias_fragment
dEQP-VK.glsl.texture_functions.texture.sparse_sampler2darrayshadow_fragment
dEQP-VK.glsl.texture_functions.texture.sampler2darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1dshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texture.sampler1darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.texture.sampler1darrayshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.texture.samplercubearrayshadow_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2d_fixed_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sampler2d_fixed_fragment
@@ -103984,12 +109423,46 @@
dEQP-VK.glsl.texture_functions.textureoffset.sampler3d_bias_float_fragment
dEQP-VK.glsl.texture_functions.textureoffset.isampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.textureoffset.usampler3d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1d_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1darray_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darray_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.isampler1darray_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.usampler1darray_bias_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureoffset.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2dshadow_bias_fragment
dEQP-VK.glsl.texture_functions.textureoffset.sampler2dshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler2darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sparse_sampler2darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler2darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1dshadow_bias_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darrayshadow_fragment
+dEQP-VK.glsl.texture_functions.textureoffset.sampler1darrayshadow_bias_fragment
dEQP-VK.glsl.texture_functions.textureproj.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureproj.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureproj.sampler2d_vec3_float_vertex
@@ -104026,6 +109499,33 @@
dEQP-VK.glsl.texture_functions.textureproj.sampler3d_bias_float_fragment
dEQP-VK.glsl.texture_functions.textureproj.isampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.textureproj.usampler3d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec2_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec2_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec2_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1d_vec4_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureproj.isampler1d_vec4_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.usampler1d_vec4_bias_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureproj.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureproj.sampler1dshadow_bias_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler2d_vec3_float_vertex
@@ -104058,6 +109558,33 @@
dEQP-VK.glsl.texture_functions.textureprojoffset.sampler3d_bias_float_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.isampler3d_bias_fragment
dEQP-VK.glsl.texture_functions.textureprojoffset.usampler3d_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec2_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec2_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec2_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_bias_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1d_vec4_bias_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.isampler1d_vec4_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.usampler1d_vec4_bias_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.textureprojoffset.sampler1dshadow_bias_fragment
dEQP-VK.glsl.texture_functions.texturelod.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturelod.sampler2d_fixed_fragment
dEQP-VK.glsl.texture_functions.texturelod.sampler2d_float_vertex
@@ -104094,10 +109621,38 @@
dEQP-VK.glsl.texture_functions.texturelod.isampler3d_fragment
dEQP-VK.glsl.texture_functions.texturelod.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texturelod.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texturelod.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturelod.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturelod.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturelod.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texturelod.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturelod.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturelod.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturelod.usampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturelod.samplercubearray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelod.samplercubearray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelod.samplercubearray_float_vertex
+dEQP-VK.glsl.texture_functions.texturelod.samplercubearray_float_fragment
+dEQP-VK.glsl.texture_functions.texturelod.isamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texturelod.isamplercubearray_fragment
+dEQP-VK.glsl.texture_functions.texturelod.usamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texturelod.usamplercubearray_fragment
dEQP-VK.glsl.texture_functions.texturelod.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturelod.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturelod.sparse_sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.texturelod.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texturelod.sampler1darrayshadow_fragment
dEQP-VK.glsl.texture_functions.texturelodoffset.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturelodoffset.sampler2d_fixed_fragment
dEQP-VK.glsl.texture_functions.texturelodoffset.sampler2d_float_vertex
@@ -104120,10 +109675,30 @@
dEQP-VK.glsl.texture_functions.texturelodoffset.isampler3d_vertex
dEQP-VK.glsl.texture_functions.texturelodoffset.isampler3d_fragment
dEQP-VK.glsl.texture_functions.texturelodoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.usampler1darray_fragment
dEQP-VK.glsl.texture_functions.texturelodoffset.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturelodoffset.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturelodoffset.sparse_sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.texturelodoffset.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texturelodoffset.sampler1darrayshadow_fragment
dEQP-VK.glsl.texture_functions.textureprojlod.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojlod.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojlod.sampler2d_vec3_float_vertex
@@ -104146,6 +109721,24 @@
dEQP-VK.glsl.texture_functions.textureprojlod.sampler3d_float_fragment
dEQP-VK.glsl.texture_functions.textureprojlod.isampler3d_fragment
dEQP-VK.glsl.texture_functions.textureprojlod.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.usampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojlod.sampler1dshadow_fragment
dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler2d_vec3_float_vertex
@@ -104167,6 +109760,24 @@
dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler3d_float_fragment
dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler3d_fragment
dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.usampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojlodoffset.sampler1dshadow_fragment
dEQP-VK.glsl.texture_functions.texturegrad.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sampler2d_fixed_fragment
dEQP-VK.glsl.texture_functions.texturegrad.sampler2d_float_vertex
@@ -104178,10 +109789,38 @@
dEQP-VK.glsl.texture_functions.texturegrad.sampler3d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sampler3d_fixed_fragment
dEQP-VK.glsl.texture_functions.texturegrad.sampler3d_float_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.usampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.samplercubearray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.samplercubearray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.samplercubearray_float_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.samplercubearray_float_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.isamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.isamplercubearray_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.usamplercubearray_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.usamplercubearray_fragment
dEQP-VK.glsl.texture_functions.texturegrad.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturegrad.sparse_sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.texturegrad.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texturegrad.sampler1darrayshadow_fragment
dEQP-VK.glsl.texture_functions.texturegradoffset.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.sampler2d_fixed_fragment
dEQP-VK.glsl.texture_functions.texturegradoffset.sampler2d_float_vertex
@@ -104208,10 +109847,30 @@
dEQP-VK.glsl.texture_functions.texturegradoffset.isampler3d_fragment
dEQP-VK.glsl.texture_functions.texturegradoffset.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.usampler1darray_fragment
dEQP-VK.glsl.texture_functions.texturegradoffset.sparse_sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.sampler2dshadow_vertex
dEQP-VK.glsl.texture_functions.texturegradoffset.sparse_sampler2dshadow_fragment
dEQP-VK.glsl.texture_functions.texturegradoffset.sampler2dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1dshadow_fragment
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darrayshadow_vertex
+dEQP-VK.glsl.texture_functions.texturegradoffset.sampler1darrayshadow_fragment
dEQP-VK.glsl.texture_functions.textureprojgrad.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojgrad.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojgrad.sampler2d_vec3_float_vertex
@@ -104236,6 +109895,24 @@
dEQP-VK.glsl.texture_functions.textureprojgrad.isampler3d_fragment
dEQP-VK.glsl.texture_functions.textureprojgrad.usampler3d_vertex
dEQP-VK.glsl.texture_functions.textureprojgrad.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.usampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojgrad.sampler1dshadow_fragment
dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler2d_vec3_fixed_vertex
dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler2d_vec3_fixed_fragment
dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler2d_vec3_float_vertex
@@ -104260,6 +109937,24 @@
dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler3d_fragment
dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler3d_vertex
dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec2_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec2_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec2_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec2_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler1d_vec2_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler1d_vec2_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec4_fixed_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec4_fixed_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec4_float_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1d_vec4_float_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.isampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler1d_vec4_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.usampler1d_vec4_fragment
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1dshadow_vertex
+dEQP-VK.glsl.texture_functions.textureprojgradoffset.sampler1dshadow_fragment
dEQP-VK.glsl.texture_functions.texelfetch.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texelfetch.sampler2d_fixed_fragment
dEQP-VK.glsl.texture_functions.texelfetch.sampler2d_float_vertex
@@ -104298,6 +109993,22 @@
dEQP-VK.glsl.texture_functions.texelfetch.isampler3d_fragment
dEQP-VK.glsl.texture_functions.texelfetch.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texelfetch.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texelfetch.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texelfetch.usampler1darray_fragment
dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler2d_fixed_fragment
dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler2d_float_vertex
@@ -104322,6 +110033,22 @@
dEQP-VK.glsl.texture_functions.texelfetchoffset.isampler3d_fragment
dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler3d_vertex
dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler3d_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1d_fixed_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1d_fixed_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1d_float_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1d_float_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.isampler1d_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.isampler1d_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler1d_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler1d_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1darray_fixed_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1darray_fixed_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1darray_float_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.sampler1darray_float_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.isampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.isampler1darray_fragment
+dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler1darray_vertex
+dEQP-VK.glsl.texture_functions.texelfetchoffset.usampler1darray_fragment
dEQP-VK.glsl.texture_functions.query.texturesize.sampler2d_fixed_vertex
dEQP-VK.glsl.texture_functions.query.texturesize.sampler2d_fixed_fragment
dEQP-VK.glsl.texture_functions.query.texturesize.sampler2d_float_vertex
@@ -133057,6 +138784,18 @@
dEQP-VK.texture.mipmap.2d.affine.linear_linear_clamp
dEQP-VK.texture.mipmap.2d.affine.linear_linear_repeat
dEQP-VK.texture.mipmap.2d.affine.linear_linear_mirror
+dEQP-VK.texture.mipmap.2d.projected.nearest_nearest_clamp
+dEQP-VK.texture.mipmap.2d.projected.nearest_nearest_repeat
+dEQP-VK.texture.mipmap.2d.projected.nearest_nearest_mirror
+dEQP-VK.texture.mipmap.2d.projected.linear_nearest_clamp
+dEQP-VK.texture.mipmap.2d.projected.linear_nearest_repeat
+dEQP-VK.texture.mipmap.2d.projected.linear_nearest_mirror
+dEQP-VK.texture.mipmap.2d.projected.nearest_linear_clamp
+dEQP-VK.texture.mipmap.2d.projected.nearest_linear_repeat
+dEQP-VK.texture.mipmap.2d.projected.nearest_linear_mirror
+dEQP-VK.texture.mipmap.2d.projected.linear_linear_clamp
+dEQP-VK.texture.mipmap.2d.projected.linear_linear_repeat
+dEQP-VK.texture.mipmap.2d.projected.linear_linear_mirror
dEQP-VK.texture.mipmap.2d.bias.nearest_nearest
dEQP-VK.texture.mipmap.2d.bias.linear_nearest
dEQP-VK.texture.mipmap.2d.bias.nearest_linear
diff --git a/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py
index 96e770b..30b52e8 100644
--- a/external/vulkancts/scripts/gen_framework.py
+++ b/external/vulkancts/scripts/gen_framework.py
@@ -114,7 +114,10 @@
"vkDebugReportMessageEXT",
# VK_NV_external_memory_capabilities
- "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"
+ "vkGetPhysicalDeviceExternalImageFormatPropertiesNV",
+
+ # VK_NVX_device_generated_commands
+ "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX",
]
DEFINITIONS = [
diff --git a/framework/common/tcuTexLookupVerifier.cpp b/framework/common/tcuTexLookupVerifier.cpp
index 7f3e277..5b4ac5e 100644
--- a/framework/common/tcuTexLookupVerifier.cpp
+++ b/framework/common/tcuTexLookupVerifier.cpp
@@ -2117,7 +2117,7 @@
return computeFloatingPointError(value, bits);
}
-Vec2 computeLodBoundsFromDerivates (const float dudx, const float dvdx, const float dwdx, const float dudy, const float dvdy, const float dwdy, const LodPrecision& prec)
+Vec2 computeOpenGLLodBoundsFromDerivates (const float dudx, const float dvdx, const float dwdx, const float dudy, const float dvdy, const float dwdy, const LodPrecision& prec)
{
const float mu = de::max(deFloatAbs(dudx), deFloatAbs(dudy));
const float mv = de::max(deFloatAbs(dvdx), deFloatAbs(dvdy));
@@ -2134,6 +2134,52 @@
return Vec2(minLod-lodErr, maxLod+lodErr);
}
+Vec2 computeVulkanLodBoundsFromDerivates (const float dudx, const float dvdx, const float dwdx, const float dudy, const float dvdy, const float dwdy, const LodPrecision& prec)
+{
+ const float mux = deFloatAbs(dudx);
+ const float mvx = deFloatAbs(dvdx);
+ const float mwx = deFloatAbs(dwdx);
+ const float muy = deFloatAbs(dudy);
+ const float mvy = deFloatAbs(dvdy);
+ const float mwy = deFloatAbs(dwdy);
+
+ // Ideal:
+ // px = deFloatSqrt2(mux*mux + mvx*mvx + mwx*mwx);
+ // py = deFloatSqrt2(muy*muy + mvy*mvy + mwy*mwy);
+
+ // fx, fy estimate lower bounds
+ const float fxMin = de::max(de::max(mux, mvx), mwx);
+ const float fyMin = de::max(de::max(muy, mvy), mwy);
+
+ // fx, fy estimate upper bounds
+ const float sqrt2 = deFloatSqrt(2.0f);
+ const float fxMax = sqrt2 * (mux + mvx + mwx);
+ const float fyMax = sqrt2 * (muy + mvy + mwy);
+
+ // p = max(px, py) (isotropic filtering)
+ const float pMin = de::max(fxMin, fyMin);
+ const float pMax = de::max(fxMax, fyMax);
+
+ // error terms
+ const float pMinErr = computeFloatingPointError(pMin, prec.derivateBits);
+ const float pMaxErr = computeFloatingPointError(pMax, prec.derivateBits);
+
+ const float minLod = deFloatLog2(pMin-pMinErr);
+ const float maxLod = deFloatLog2(pMax+pMaxErr);
+ const float lodErr = computeFixedPointError(prec.lodBits);
+
+ DE_ASSERT(minLod <= maxLod);
+ return Vec2(minLod-lodErr, maxLod+lodErr);
+}
+
+Vec2 computeLodBoundsFromDerivates (const float dudx, const float dvdx, const float dwdx, const float dudy, const float dvdy, const float dwdy, const LodPrecision& prec)
+{
+ if (prec.rule == LodPrecision::RULE_VULKAN)
+ return computeVulkanLodBoundsFromDerivates(dudx, dvdx, dwdx, dudy, dvdy, dwdy, prec);
+ else
+ return computeOpenGLLodBoundsFromDerivates(dudx, dvdx, dwdx, dudy, dvdy, dwdy, prec);
+}
+
Vec2 computeLodBoundsFromDerivates (const float dudx, const float dvdx, const float dudy, const float dvdy, const LodPrecision& prec)
{
return computeLodBoundsFromDerivates(dudx, dvdx, 0.0f, dudy, dvdy, 0.0f, prec);
diff --git a/framework/common/tcuTexLookupVerifier.hpp b/framework/common/tcuTexLookupVerifier.hpp
index 6f6aaec..192986e 100644
--- a/framework/common/tcuTexLookupVerifier.hpp
+++ b/framework/common/tcuTexLookupVerifier.hpp
@@ -77,11 +77,21 @@
*//*--------------------------------------------------------------------*/
struct LodPrecision
{
+ enum Rule
+ {
+ RULE_OPENGL = 0, //!< OpenGL LOD
+ RULE_VULKAN, //!< Vulkan LOD
+
+ RULE_LAST
+ };
+
+ Rule rule; //!< LOD computation rule (Vulkan or OpenGL)
int derivateBits; //!< Number of bits in derivates. (Floating-point)
int lodBits; //!< Number of bits in final lod (accuracy of log2()). (Fixed-point)
- LodPrecision (void)
- : derivateBits (22)
+ LodPrecision (Rule rule_)
+ : rule (rule_)
+ , derivateBits (22)
, lodBits (16)
{
}
diff --git a/framework/delibs/debase/deInt32.h b/framework/delibs/debase/deInt32.h
index 72efc78..c694047 100644
--- a/framework/delibs/debase/deInt32.h
+++ b/framework/delibs/debase/deInt32.h
@@ -248,6 +248,18 @@
}
/*--------------------------------------------------------------------*//*!
+ * \brief Check if an integer is aligned to given power-of-two size.
+ * \param a Input value.
+ * \param align Alignment to check for.
+ * \return True if input is aligned, false otherwise.
+ *//*--------------------------------------------------------------------*/
+DE_INLINE deBool deIsAligned64 (deInt64 a, deInt64 align)
+{
+ DE_ASSERT(deIsPowerOfTwo64(align));
+ return ((a & (align-1)) == 0);
+}
+
+/*--------------------------------------------------------------------*//*!
* \brief Check if a pointer is aligned to given power-of-two size.
* \param ptr Input pointer.
* \param align Alignment to check for (power-of-two).
@@ -272,6 +284,18 @@
}
/*--------------------------------------------------------------------*//*!
+ * \brief Align an integer to given power-of-two size.
+ * \param val Input to align.
+ * \param align Alignment to check for (power-of-two).
+ * \return The aligned value (larger or equal to input).
+ *//*--------------------------------------------------------------------*/
+DE_INLINE deInt64 deAlign64 (deInt64 val, deInt64 align)
+{
+ DE_ASSERT(deIsPowerOfTwo64(align));
+ return (val + align - 1) & ~(align - 1);
+}
+
+/*--------------------------------------------------------------------*//*!
* \brief Align a pointer to given power-of-two size.
* \param ptr Input pointer to align.
* \param align Alignment to check for (power-of-two).
diff --git a/framework/egl/egluCallLogWrapper.inl b/framework/egl/egluCallLogWrapper.inl
index 57041bd..ee49459 100644
--- a/framework/egl/egluCallLogWrapper.inl
+++ b/framework/egl/egluCallLogWrapper.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
eglw::EGLBoolean CallLogWrapper::eglBindAPI (eglw::EGLenum api)
diff --git a/framework/egl/egluCallLogWrapperApi.inl b/framework/egl/egluCallLogWrapperApi.inl
index 69be6e9..99df24b 100644
--- a/framework/egl/egluCallLogWrapperApi.inl
+++ b/framework/egl/egluCallLogWrapperApi.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
eglw::EGLBoolean eglBindAPI (eglw::EGLenum api);
eglw::EGLBoolean eglBindTexImage (eglw::EGLDisplay dpy, eglw::EGLSurface surface, eglw::EGLint buffer);
diff --git a/framework/egl/egluConfigFilter.cpp b/framework/egl/egluConfigFilter.cpp
index c6d06ad..bd1a5c7 100644
--- a/framework/egl/egluConfigFilter.cpp
+++ b/framework/egl/egluConfigFilter.cpp
@@ -25,6 +25,7 @@
#include "egluUtil.hpp"
#include "egluConfigInfo.hpp"
#include "eglwEnums.hpp"
+#include "deSTLUtil.hpp"
#include <algorithm>
@@ -55,19 +56,32 @@
if (m_type == TYPE_CONFIG_INFO)
return m_cfg.configInfo->getAttribute(attrib);
else
- return getConfigAttribInt(*m_cfg.object.egl, m_cfg.object.display, m_cfg.object.config, attrib);
+ {
+ if (attrib == EGL_COLOR_COMPONENT_TYPE_EXT)
+ {
+ const std::vector<std::string> extensions = getDisplayExtensions(*m_cfg.object.egl, m_cfg.object.display);
+
+ if (de::contains(extensions.begin(), extensions.end(), "EGL_EXT_pixel_format_float"))
+ return getConfigAttribInt(*m_cfg.object.egl, m_cfg.object.display, m_cfg.object.config, attrib);
+ else
+ return EGL_COLOR_COMPONENT_TYPE_FIXED_EXT;
+ }
+ else
+ return getConfigAttribInt(*m_cfg.object.egl, m_cfg.object.display, m_cfg.object.config, attrib);
+ }
}
-int CandidateConfig::id (void) const { return get(EGL_CONFIG_ID); }
-int CandidateConfig::redSize (void) const { return get(EGL_RED_SIZE); }
-int CandidateConfig::greenSize (void) const { return get(EGL_GREEN_SIZE); }
-int CandidateConfig::blueSize (void) const { return get(EGL_BLUE_SIZE); }
-int CandidateConfig::alphaSize (void) const { return get(EGL_ALPHA_SIZE); }
-int CandidateConfig::depthSize (void) const { return get(EGL_DEPTH_SIZE); }
-int CandidateConfig::stencilSize (void) const { return get(EGL_STENCIL_SIZE); }
-int CandidateConfig::samples (void) const { return get(EGL_SAMPLES); }
-deUint32 CandidateConfig::renderableType (void) const { return (deUint32)get(EGL_RENDERABLE_TYPE); }
-deUint32 CandidateConfig::surfaceType (void) const { return (deUint32)get(EGL_SURFACE_TYPE); }
+int CandidateConfig::id (void) const { return get(EGL_CONFIG_ID); }
+int CandidateConfig::redSize (void) const { return get(EGL_RED_SIZE); }
+int CandidateConfig::greenSize (void) const { return get(EGL_GREEN_SIZE); }
+int CandidateConfig::blueSize (void) const { return get(EGL_BLUE_SIZE); }
+int CandidateConfig::alphaSize (void) const { return get(EGL_ALPHA_SIZE); }
+int CandidateConfig::depthSize (void) const { return get(EGL_DEPTH_SIZE); }
+int CandidateConfig::stencilSize (void) const { return get(EGL_STENCIL_SIZE); }
+int CandidateConfig::samples (void) const { return get(EGL_SAMPLES); }
+deUint32 CandidateConfig::renderableType (void) const { return (deUint32)get(EGL_RENDERABLE_TYPE); }
+deUint32 CandidateConfig::surfaceType (void) const { return (deUint32)get(EGL_SURFACE_TYPE); }
+deUint32 CandidateConfig::colorComponentType (void) const { return (deUint32)get(EGL_COLOR_COMPONENT_TYPE_EXT); }
FilterList& FilterList::operator<< (ConfigFilter filter)
{
diff --git a/framework/egl/egluConfigFilter.hpp b/framework/egl/egluConfigFilter.hpp
index 2f316fe..baddad5 100644
--- a/framework/egl/egluConfigFilter.hpp
+++ b/framework/egl/egluConfigFilter.hpp
@@ -59,6 +59,7 @@
deUint32 renderableType (void) const;
deUint32 surfaceType (void) const;
+ deUint32 colorComponentType (void) const;
tcu::RGBA colorBits (void) const { return tcu::RGBA(redSize(), greenSize(), blueSize(), alphaSize()); }
diff --git a/framework/egl/egluConfigInfo.cpp b/framework/egl/egluConfigInfo.cpp
index aed08f3..ab6081c 100644
--- a/framework/egl/egluConfigInfo.cpp
+++ b/framework/egl/egluConfigInfo.cpp
@@ -77,6 +77,9 @@
case EGL_YUV_CSC_STANDARD_EXT: return yuvCscStandard;
case EGL_YUV_PLANE_BPP_EXT: return yuvPlaneBpp;
+ // EGL_EXT_pixel_format_float
+ case EGL_COLOR_COMPONENT_TYPE_EXT: return colorComponentType;
+
default: TCU_THROW(InternalError, "Unknown attribute");
}
}
@@ -132,6 +135,15 @@
EGLU_CHECK_MSG(egl, "Failed to query EGL_EXT_yuv_surface config attribs");
}
+
+ if (de::contains(extensions.begin(), extensions.end(), "EGL_EXT_pixel_format_float"))
+ {
+ egl.getConfigAttrib(display, config, EGL_COLOR_COMPONENT_TYPE_EXT, (EGLint*)&dst->colorComponentType);
+
+ EGLU_CHECK_MSG(egl, "Failed to query EGL_EXT_pixel_format_float config attribs");
+ }
+ else
+ dst->colorComponentType = EGL_COLOR_COMPONENT_TYPE_FIXED_EXT;
}
} // eglu
diff --git a/framework/egl/egluConfigInfo.hpp b/framework/egl/egluConfigInfo.hpp
index 356c50a..2c0ae24 100644
--- a/framework/egl/egluConfigInfo.hpp
+++ b/framework/egl/egluConfigInfo.hpp
@@ -81,6 +81,9 @@
deUint32 yuvCscStandard;
deInt32 yuvPlaneBpp;
+ // EGL_EXT_pixel_format_float
+ deUint32 colorComponentType;
+
ConfigInfo (void)
: bufferSize (0)
, redSize (0)
@@ -119,6 +122,7 @@
, yuvDepthRange (EGL_NONE)
, yuvCscStandard (EGL_NONE)
, yuvPlaneBpp (EGL_YUV_PLANE_BPP_0_EXT)
+ , colorComponentType (EGL_NONE)
{
}
diff --git a/framework/egl/egluStrUtil.inl b/framework/egl/egluStrUtil.inl
index 297a00c..d01e55b 100644
--- a/framework/egl/egluStrUtil.inl
+++ b/framework/egl/egluStrUtil.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
const char* getBooleanName (int value)
@@ -159,6 +159,16 @@
}
}
+const char* getColorComponentTypeName (int value)
+{
+ switch (value)
+ {
+ case EGL_COLOR_COMPONENT_TYPE_FIXED_EXT: return "EGL_COLOR_COMPONENT_TYPE_FIXED_EXT";
+ case EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT: return "EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT";
+ default: return DE_NULL;
+ }
+}
+
const char* getSurfaceTargetName (int value)
{
switch (value)
diff --git a/framework/egl/egluStrUtilPrototypes.inl b/framework/egl/egluStrUtilPrototypes.inl
index fc2093f..839837f 100644
--- a/framework/egl/egluStrUtilPrototypes.inl
+++ b/framework/egl/egluStrUtilPrototypes.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
const char* getBooleanName (int value);
const char* getBoolDontCareName (int value);
@@ -12,6 +12,7 @@
const char* getSurfaceAttribName (int value);
const char* getYuvOrderName (int value);
const char* getYuvPlaneBppName (int value);
+const char* getColorComponentTypeName (int value);
const char* getSurfaceTargetName (int value);
const char* getColorBufferTypeName (int value);
const char* getConfigCaveatName (int value);
@@ -34,6 +35,7 @@
inline tcu::Format::Enum<int, 2> getSurfaceAttribStr (int value) { return tcu::Format::Enum<int, 2>(getSurfaceAttribName, value); }
inline tcu::Format::Enum<int, 2> getYuvOrderStr (int value) { return tcu::Format::Enum<int, 2>(getYuvOrderName, value); }
inline tcu::Format::Enum<int, 2> getYuvPlaneBppStr (int value) { return tcu::Format::Enum<int, 2>(getYuvPlaneBppName, value); }
+inline tcu::Format::Enum<int, 2> getColorComponentTypeStr (int value) { return tcu::Format::Enum<int, 2>(getColorComponentTypeName, value); }
inline tcu::Format::Enum<int, 2> getSurfaceTargetStr (int value) { return tcu::Format::Enum<int, 2>(getSurfaceTargetName, value); }
inline tcu::Format::Enum<int, 2> getColorBufferTypeStr (int value) { return tcu::Format::Enum<int, 2>(getColorBufferTypeName, value); }
inline tcu::Format::Enum<int, 2> getConfigCaveatStr (int value) { return tcu::Format::Enum<int, 2>(getConfigCaveatName, value); }
diff --git a/framework/egl/wrapper/eglwEnums.inl b/framework/egl/wrapper/eglwEnums.inl
index bfa267d..edb58c5 100644
--- a/framework/egl/wrapper/eglwEnums.inl
+++ b/framework/egl/wrapper/eglwEnums.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
#define EGL_PBUFFER_BIT 0x0001
#define EGL_PIXMAP_BIT 0x0002
@@ -264,3 +264,6 @@
#define EGL_YUV_PLANE_BPP_0_EXT 0x331B
#define EGL_YUV_PLANE_BPP_8_EXT 0x331C
#define EGL_YUV_PLANE_BPP_10_EXT 0x331D
+#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
+#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
+#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
diff --git a/framework/egl/wrapper/eglwFuncPtrLibraryDecl.inl b/framework/egl/wrapper/eglwFuncPtrLibraryDecl.inl
index 353b6b2..e7d1327 100644
--- a/framework/egl/wrapper/eglwFuncPtrLibraryDecl.inl
+++ b/framework/egl/wrapper/eglwFuncPtrLibraryDecl.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
EGLBoolean bindAPI (EGLenum api) const;
EGLBoolean bindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer) const;
diff --git a/framework/egl/wrapper/eglwFuncPtrLibraryImpl.inl b/framework/egl/wrapper/eglwFuncPtrLibraryImpl.inl
index c1140a7..1678c71 100644
--- a/framework/egl/wrapper/eglwFuncPtrLibraryImpl.inl
+++ b/framework/egl/wrapper/eglwFuncPtrLibraryImpl.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
EGLBoolean FuncPtrLibrary::bindAPI (EGLenum api) const
diff --git a/framework/egl/wrapper/eglwFunctionTypes.inl b/framework/egl/wrapper/eglwFunctionTypes.inl
index b66bdfd..d57105e 100644
--- a/framework/egl/wrapper/eglwFunctionTypes.inl
+++ b/framework/egl/wrapper/eglwFunctionTypes.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
typedef EGLW_APICALL EGLBoolean (EGLW_APIENTRY* eglBindAPIFunc) (EGLenum api);
typedef EGLW_APICALL EGLBoolean (EGLW_APIENTRY* eglBindTexImageFunc) (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
diff --git a/framework/egl/wrapper/eglwFunctions.inl b/framework/egl/wrapper/eglwFunctions.inl
index 3f0ce29..af0d1b2 100644
--- a/framework/egl/wrapper/eglwFunctions.inl
+++ b/framework/egl/wrapper/eglwFunctions.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
eglBindAPIFunc bindAPI;
eglBindTexImageFunc bindTexImage;
diff --git a/framework/egl/wrapper/eglwInitCore.inl b/framework/egl/wrapper/eglwInitCore.inl
index b09f990..15f941d 100644
--- a/framework/egl/wrapper/eglwInitCore.inl
+++ b/framework/egl/wrapper/eglwInitCore.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
dst->bindAPI = (eglBindAPIFunc) loader->get("eglBindAPI");
dst->bindTexImage = (eglBindTexImageFunc) loader->get("eglBindTexImage");
diff --git a/framework/egl/wrapper/eglwInitExtensions.inl b/framework/egl/wrapper/eglwInitExtensions.inl
index 7ea82e4..90d00a1 100644
--- a/framework/egl/wrapper/eglwInitExtensions.inl
+++ b/framework/egl/wrapper/eglwInitExtensions.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
dst->clientWaitSyncKHR = (eglClientWaitSyncKHRFunc) loader->get("eglClientWaitSyncKHR");
dst->createImageKHR = (eglCreateImageKHRFunc) loader->get("eglCreateImageKHR");
diff --git a/framework/egl/wrapper/eglwLibrary.inl b/framework/egl/wrapper/eglwLibrary.inl
index a9a42c8..a3d617d 100644
--- a/framework/egl/wrapper/eglwLibrary.inl
+++ b/framework/egl/wrapper/eglwLibrary.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
virtual EGLBoolean bindAPI (EGLenum api) const = 0;
virtual EGLBoolean bindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer) const = 0;
diff --git a/framework/egl/wrapper/eglwStaticLibrary14.inl b/framework/egl/wrapper/eglwStaticLibrary14.inl
index d2d5ca0..22a2c5c 100644
--- a/framework/egl/wrapper/eglwStaticLibrary14.inl
+++ b/framework/egl/wrapper/eglwStaticLibrary14.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
{ "eglBindAPI", (deFunctionPtr)eglBindAPI },
{ "eglBindTexImage", (deFunctionPtr)eglBindTexImage },
diff --git a/framework/egl/wrapper/eglwStaticLibrary15.inl b/framework/egl/wrapper/eglwStaticLibrary15.inl
index c9fafeb..a44c589 100644
--- a/framework/egl/wrapper/eglwStaticLibrary15.inl
+++ b/framework/egl/wrapper/eglwStaticLibrary15.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
{ "eglBindAPI", (deFunctionPtr)eglBindAPI },
{ "eglBindTexImage", (deFunctionPtr)eglBindTexImage },
diff --git a/modules/egl/teglChooseConfigReference.cpp b/modules/egl/teglChooseConfigReference.cpp
index 50a2769..aab0156 100644
--- a/modules/egl/teglChooseConfigReference.cpp
+++ b/modules/egl/teglChooseConfigReference.cpp
@@ -142,6 +142,17 @@
}
}
+ static int getColorComponentTypeRank (EGLenum compType)
+ {
+ switch (compType)
+ {
+ case EGL_COLOR_COMPONENT_TYPE_FIXED_EXT: return 0;
+ case EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT: return 1;
+ default:
+ TCU_THROW(TestError, (std::string("Unknown color component type: ") + eglu::getColorComponentTypeStr(compType).toString()).c_str());
+ }
+ }
+
typedef bool (*CompareFunc) (const SurfaceConfig& a, const SurfaceConfig& b);
static bool compareCaveat (const SurfaceConfig& a, const SurfaceConfig& b)
@@ -159,6 +170,11 @@
return getYuvOrderRank((EGLenum)a.m_info.yuvOrder) < getYuvOrderRank((EGLenum)b.m_info.yuvOrder);
}
+ static bool compareColorComponentType (const SurfaceConfig& a, const SurfaceConfig& b)
+ {
+ return getColorComponentTypeRank((EGLenum)a.m_info.colorComponentType) < getColorComponentTypeRank((EGLenum)b.m_info.colorComponentType);
+ }
+
static bool compareColorBufferBits (const SurfaceConfig& a, const SurfaceConfig& b, const tcu::BVec4& specifiedRGBColors, const tcu::BVec2& specifiedLuminanceColors, bool yuvPlaneBppSpecified)
{
DE_ASSERT(a.m_info.colorBufferType == b.m_info.colorBufferType);
@@ -229,6 +245,7 @@
{
SurfaceConfig::compareCaveat,
SurfaceConfig::compareColorBufferType,
+ SurfaceConfig::compareColorComponentType,
DE_NULL, // SurfaceConfig::compareColorBufferBits,
SurfaceConfig::compareAttributeSmaller<EGL_BUFFER_SIZE>,
SurfaceConfig::compareAttributeSmaller<EGL_SAMPLE_BUFFERS>,
@@ -307,6 +324,9 @@
rules[EGL_YUV_CSC_STANDARD_EXT] = AttribRule(EGL_YUV_CSC_STANDARD_EXT, EGL_DONT_CARE, CRITERIA_EXACT, SORTORDER_NONE);
rules[EGL_YUV_PLANE_BPP_EXT] = AttribRule(EGL_YUV_PLANE_BPP_EXT, EGL_DONT_CARE, CRITERIA_AT_LEAST, SORTORDER_SPECIAL); // 3
+ // EGL_EXT_pixel_format_float
+ rules[EGL_COLOR_COMPONENT_TYPE_EXT] = AttribRule(EGL_COLOR_COMPONENT_TYPE_EXT, EGL_COLOR_COMPONENT_TYPE_FIXED_EXT, CRITERIA_EXACT, SORTORDER_SPECIAL); // 2
+
return rules;
}
private:
diff --git a/modules/egl/teglGetProcAddressTests.inl b/modules/egl/teglGetProcAddressTests.inl
index 087ec0e..33fde9b 100644
--- a/modules/egl/teglGetProcAddressTests.inl
+++ b/modules/egl/teglGetProcAddressTests.inl
@@ -1,7 +1,7 @@
/* WARNING: This is auto-generated file. Do not modify, since changes will
* be lost! Modify the generating script instead.
*
- * Generated from Khronos EGL API description (egl.xml) revision 32725.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
*/
static const char* s_EGL14[] =
@@ -449,11 +449,21 @@
"eglSetBlobCacheFuncsANDROID",
};
+static const char* s_EGL_ANDROID_create_native_client_buffer[] =
+{
+ "eglCreateNativeClientBufferANDROID",
+};
+
static const char* s_EGL_ANDROID_native_fence_sync[] =
{
"eglDupNativeFenceFDANDROID",
};
+static const char* s_EGL_ANDROID_presentation_time[] =
+{
+ "eglPresentationTimeANDROID",
+};
+
static const char* s_EGL_ANGLE_query_surface_pointer[] =
{
"eglQuerySurfacePointerANGLE",
@@ -479,6 +489,12 @@
"eglQueryDisplayAttribEXT",
};
+static const char* s_EGL_EXT_image_dma_buf_import_modifiers[] =
+{
+ "eglQueryDmaBufFormatsEXT",
+ "eglQueryDmaBufModifiersEXT",
+};
+
static const char* s_EGL_EXT_output_base[] =
{
"eglGetOutputLayersEXT",
@@ -581,6 +597,15 @@
"eglStreamAttribKHR",
};
+static const char* s_EGL_KHR_stream_attrib[] =
+{
+ "eglCreateStreamAttribKHR",
+ "eglQueryStreamAttribKHR",
+ "eglSetStreamAttribKHR",
+ "eglStreamConsumerAcquireAttribKHR",
+ "eglStreamConsumerReleaseAttribKHR",
+};
+
static const char* s_EGL_KHR_stream_consumer_gltexture[] =
{
"eglStreamConsumerAcquireKHR",
@@ -660,6 +685,11 @@
"eglSetStreamMetadataNV",
};
+static const char* s_EGL_NV_stream_reset[] =
+{
+ "eglResetStreamNV",
+};
+
static const char* s_EGL_NV_stream_sync[] =
{
"eglCreateStreamSyncNV",
@@ -1553,11 +1583,14 @@
} s_extensions[] =
{
{ "EGL_ANDROID_blob_cache", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_blob_cache), s_EGL_ANDROID_blob_cache },
+ { "EGL_ANDROID_create_native_client_buffer", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_create_native_client_buffer), s_EGL_ANDROID_create_native_client_buffer },
{ "EGL_ANDROID_native_fence_sync", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync), s_EGL_ANDROID_native_fence_sync },
+ { "EGL_ANDROID_presentation_time", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_presentation_time), s_EGL_ANDROID_presentation_time },
{ "EGL_ANGLE_query_surface_pointer", DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer), s_EGL_ANGLE_query_surface_pointer },
{ "EGL_EXT_device_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base), s_EGL_EXT_device_base },
{ "EGL_EXT_device_enumeration", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration), s_EGL_EXT_device_enumeration },
{ "EGL_EXT_device_query", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query), s_EGL_EXT_device_query },
+ { "EGL_EXT_image_dma_buf_import_modifiers", DE_LENGTH_OF_ARRAY(s_EGL_EXT_image_dma_buf_import_modifiers), s_EGL_EXT_image_dma_buf_import_modifiers },
{ "EGL_EXT_output_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base), s_EGL_EXT_output_base },
{ "EGL_EXT_platform_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base), s_EGL_EXT_platform_base },
{ "EGL_EXT_stream_consumer_egloutput", DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput), s_EGL_EXT_stream_consumer_egloutput },
@@ -1573,6 +1606,7 @@
{ "EGL_KHR_partial_update", DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update), s_EGL_KHR_partial_update },
{ "EGL_KHR_reusable_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync), s_EGL_KHR_reusable_sync },
{ "EGL_KHR_stream", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream), s_EGL_KHR_stream },
+ { "EGL_KHR_stream_attrib", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_attrib), s_EGL_KHR_stream_attrib },
{ "EGL_KHR_stream_consumer_gltexture", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture), s_EGL_KHR_stream_consumer_gltexture },
{ "EGL_KHR_stream_cross_process_fd", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd), s_EGL_KHR_stream_cross_process_fd },
{ "EGL_KHR_stream_fifo", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo), s_EGL_KHR_stream_fifo },
@@ -1587,6 +1621,7 @@
{ "EGL_NV_post_sub_buffer", DE_LENGTH_OF_ARRAY(s_EGL_NV_post_sub_buffer), s_EGL_NV_post_sub_buffer },
{ "EGL_NV_stream_consumer_gltexture_yuv", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_gltexture_yuv), s_EGL_NV_stream_consumer_gltexture_yuv },
{ "EGL_NV_stream_metadata", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_metadata), s_EGL_NV_stream_metadata },
+ { "EGL_NV_stream_reset", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_reset), s_EGL_NV_stream_reset },
{ "EGL_NV_stream_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_sync), s_EGL_NV_stream_sync },
{ "EGL_NV_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_sync), s_EGL_NV_sync },
{ "EGL_NV_system_time", DE_LENGTH_OF_ARRAY(s_EGL_NV_system_time), s_EGL_NV_system_time },
diff --git a/modules/egl/teglRenderCase.cpp b/modules/egl/teglRenderCase.cpp
index fc30091..a0ff8ae 100644
--- a/modules/egl/teglRenderCase.cpp
+++ b/modules/egl/teglRenderCase.cpp
@@ -397,6 +397,11 @@
return c.get(EGL_CONFIG_CAVEAT) != EGL_NON_CONFORMANT_CONFIG;
}
+static bool notFloat (const eglu::CandidateConfig& c)
+{
+ return c.colorComponentType() != EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT;
+}
+
void getDefaultRenderFilterLists (vector<RenderFilterList>& filterLists, const eglu::FilterList& baseFilters)
{
static const struct
@@ -450,7 +455,8 @@
<< notColorBits<4, 4, 4, 4>
<< notColorBits<5, 5, 5, 1>
<< notColorBits<8, 8, 8, 8>
- << isConformant;
+ << isConformant
+ << notFloat;
filterLists.push_back(filters);
}
diff --git a/modules/egl/teglSimpleConfigCase.cpp b/modules/egl/teglSimpleConfigCase.cpp
index c528178..fc02455 100644
--- a/modules/egl/teglSimpleConfigCase.cpp
+++ b/modules/egl/teglSimpleConfigCase.cpp
@@ -143,6 +143,11 @@
return c.get(EGL_CONFIG_CAVEAT) != EGL_NON_CONFORMANT_CONFIG;
}
+static bool notFloat (const eglu::CandidateConfig& c)
+{
+ return c.colorComponentType() != EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT;
+}
+
void getDefaultFilterLists (vector<NamedFilterList>& lists, const FilterList& baseFilters)
{
static const struct
@@ -209,7 +214,8 @@
<< notColorBits<4, 4, 4, 4>
<< notColorBits<5, 5, 5, 1>
<< notColorBits<8, 8, 8, 8>
- << isConformant;
+ << isConformant
+ << notFloat;
lists.push_back(filters);
}
diff --git a/modules/gles2/functional/es2fTextureFilteringTests.cpp b/modules/gles2/functional/es2fTextureFilteringTests.cpp
index 2e38f7e..0a412a0 100644
--- a/modules/gles2/functional/es2fTextureFilteringTests.cpp
+++ b/modules/gles2/functional/es2fTextureFilteringTests.cpp
@@ -299,7 +299,7 @@
const bool isNearestOnly = m_minFilter == GL_NEAREST && m_magFilter == GL_NEAREST;
const tcu::PixelFormat pixelFormat = m_renderCtx.getRenderTarget().getPixelFormat();
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 7;
@@ -585,7 +585,7 @@
const bool isNearestOnly = m_minFilter == GL_NEAREST && m_magFilter == GL_NEAREST;
const tcu::PixelFormat pixelFormat = m_renderCtx.getRenderTarget().getPixelFormat();
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 5;
diff --git a/modules/gles2/functional/es2fTextureMipmapTests.cpp b/modules/gles2/functional/es2fTextureMipmapTests.cpp
index cc65e5d..af7f9e8 100644
--- a/modules/gles2/functional/es2fTextureMipmapTests.cpp
+++ b/modules/gles2/functional/es2fTextureMipmapTests.cpp
@@ -350,7 +350,7 @@
tcu::Surface referenceFrame (viewport.width, viewport.height);
tcu::Surface errorMask (viewport.width, viewport.height);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_OPENGL);
int numFailedPixels = 0;
lookupPrec.coordBits = tcu::IVec3(20, 20, 0);
@@ -670,7 +670,7 @@
int numFailedPixels = 0;
ReferenceParams params (TEXTURETYPE_CUBE);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_OPENGL);
// Params for rendering reference
params.sampler = glu::mapGLSampler(m_wrapS, m_wrapT, m_minFilter, magFilter);
diff --git a/modules/gles3/functional/es3fTextureFilteringTests.cpp b/modules/gles3/functional/es3fTextureFilteringTests.cpp
index 929eb43..3c62936 100644
--- a/modules/gles3/functional/es3fTextureFilteringTests.cpp
+++ b/modules/gles3/functional/es3fTextureFilteringTests.cpp
@@ -299,7 +299,7 @@
const bool isNearestOnly = m_minFilter == GL_NEAREST && m_magFilter == GL_NEAREST;
const tcu::PixelFormat pixelFormat = m_renderCtx.getRenderTarget().getPixelFormat();
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 18;
@@ -612,7 +612,7 @@
const bool isNearestOnly = m_minFilter == GL_NEAREST && m_magFilter == GL_NEAREST;
const tcu::PixelFormat pixelFormat = m_renderCtx.getRenderTarget().getPixelFormat();
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 10;
@@ -878,7 +878,7 @@
const bool isNearestOnly = m_minFilter == GL_NEAREST && m_magFilter == GL_NEAREST;
const tcu::PixelFormat pixelFormat = m_context.getRenderTarget().getPixelFormat();
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 18;
@@ -1120,7 +1120,7 @@
const bool isNearestOnly = m_minFilter == GL_NEAREST && m_magFilter == GL_NEAREST;
const tcu::PixelFormat pixelFormat = m_context.getRenderTarget().getPixelFormat();
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 18;
diff --git a/modules/gles3/functional/es3fTextureMipmapTests.cpp b/modules/gles3/functional/es3fTextureMipmapTests.cpp
index bbb581f..4409631 100644
--- a/modules/gles3/functional/es3fTextureMipmapTests.cpp
+++ b/modules/gles3/functional/es3fTextureMipmapTests.cpp
@@ -394,7 +394,7 @@
tcu::Surface referenceFrame (viewport.width, viewport.height);
tcu::Surface errorMask (viewport.width, viewport.height);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_OPENGL);
int numFailedPixels = 0;
lookupPrec.coordBits = tcu::IVec3(20, 20, 0);
@@ -709,7 +709,7 @@
int numFailedPixels = 0;
ReferenceParams params (TEXTURETYPE_CUBE);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_OPENGL);
// Params for rendering reference
params.sampler = glu::mapGLSampler(m_wrapS, m_wrapT, m_minFilter, magFilter);
@@ -1341,7 +1341,7 @@
tcu::Surface referenceFrame (viewport.width, viewport.height);
tcu::Surface errorMask (viewport.width, viewport.height);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_OPENGL);
int numFailedPixels = 0;
lookupPrec.coordBits = tcu::IVec3(20, 20, 20);
@@ -1555,7 +1555,7 @@
tcu::Surface referenceFrame (viewport.width, viewport.height);
tcu::Surface errorMask (viewport.width, viewport.height);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_OPENGL);
int numFailedPixels = 0;
lookupPrec.coordBits = tcu::IVec3(20, 20, 0);
@@ -1866,7 +1866,7 @@
int numFailedPixels = 0;
ReferenceParams params (TEXTURETYPE_CUBE);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_OPENGL);
// Params for rendering reference
params.sampler = glu::mapGLSampler(wrapS, wrapT, m_minFilter, magFilter);
@@ -2187,7 +2187,7 @@
tcu::Surface referenceFrame (viewport.width, viewport.height);
tcu::Surface errorMask (viewport.width, viewport.height);
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_OPENGL);
int numFailedPixels = 0;
lookupPrec.coordBits = tcu::IVec3(20, 20, 20);
diff --git a/modules/gles3/functional/es3fTextureShadowTests.cpp b/modules/gles3/functional/es3fTextureShadowTests.cpp
index 6eb9985..8383ece 100644
--- a/modules/gles3/functional/es3fTextureShadowTests.cpp
+++ b/modules/gles3/functional/es3fTextureShadowTests.cpp
@@ -362,7 +362,7 @@
{
const tcu::PixelFormat pixelFormat = m_context.getRenderTarget().getPixelFormat();
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::TexComparePrecision texComparePrecision;
lodPrecision.derivateBits = 18;
@@ -652,7 +652,7 @@
{
const tcu::PixelFormat pixelFormat = m_context.getRenderTarget().getPixelFormat();
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::TexComparePrecision texComparePrecision;
lodPrecision.derivateBits = 10;
@@ -928,7 +928,7 @@
{
const tcu::PixelFormat pixelFormat = m_context.getRenderTarget().getPixelFormat();
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::TexComparePrecision texComparePrecision;
lodPrecision.derivateBits = 18;
diff --git a/modules/gles3/functional/es3fTextureWrapTests.cpp b/modules/gles3/functional/es3fTextureWrapTests.cpp
index d4edcdd..da12488 100644
--- a/modules/gles3/functional/es3fTextureWrapTests.cpp
+++ b/modules/gles3/functional/es3fTextureWrapTests.cpp
@@ -334,7 +334,7 @@
const bool isSRGB = tcu::isSRGB(texFormat);
const tcu::PixelFormat pixelFormat = m_renderCtx.getRenderTarget().getPixelFormat();
const tcu::IVec4 colorBits = tcu::max(getBitsVec(pixelFormat) - (isNearestOnly && !isSRGB ? 1 : 2), tcu::IVec4(0));
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 18;
diff --git a/modules/gles3/performance/es3pBufferDataUploadTests.cpp b/modules/gles3/performance/es3pBufferDataUploadTests.cpp
index bcd79a5..b8de44d 100644
--- a/modules/gles3/performance/es3pBufferDataUploadTests.cpp
+++ b/modules/gles3/performance/es3pBufferDataUploadTests.cpp
@@ -6018,7 +6018,7 @@
template <typename Comparer>
static DistributionCompareResult distributionCompare (const std::vector<deUint64>& orderedObservationsA, const std::vector<deUint64>& orderedObservationsB, const Comparer& comparer)
{
- // Mann–Whitney U test
+ // Mann-Whitney U test
const int n1 = (int)orderedObservationsA.size();
const int n2 = (int)orderedObservationsB.size();
diff --git a/modules/gles31/functional/CMakeLists.txt b/modules/gles31/functional/CMakeLists.txt
index 1f57b59..db7a8b9 100644
--- a/modules/gles31/functional/CMakeLists.txt
+++ b/modules/gles31/functional/CMakeLists.txt
@@ -173,6 +173,8 @@
es31fCopyImageTests.cpp
es31fDrawBuffersIndexedTests.hpp
es31fDrawBuffersIndexedTests.cpp
+ es31fNegativeShaderStorageTests.cpp
+ es31fNegativeShaderStorageTests.hpp
)
add_library(deqp-gles31-functional STATIC ${DEQP_GLES31_FUNCTIONAL_SRCS})
diff --git a/modules/gles31/functional/es31fCopyImageTests.cpp b/modules/gles31/functional/es31fCopyImageTests.cpp
index b4e9642..fa66729 100644
--- a/modules/gles31/functional/es31fCopyImageTests.cpp
+++ b/modules/gles31/functional/es31fCopyImageTests.cpp
@@ -2130,11 +2130,11 @@
const string targetTestName = string(targetToName(srcTarget)) + "_to_" + targetToName(dstTarget);
- const IVec3 targetSize2D (128, 128, 1);
- const IVec3 targetSize3D (128, 128, 16);
-
- const IVec3 srcSize = getTestedSize(srcTarget, srcFormat, (srcIs3D ? targetSize3D : targetSize2D));
- const IVec3 dstSize = getTestedSize(dstTarget, dstFormat, (dstIs3D ? targetSize3D : targetSize2D));
+ // Compressed formats require more space to fit all block size combinations.
+ const bool isCompressedCase = glu::isCompressedFormat(srcFormat) || glu::isCompressedFormat(dstFormat);
+ const IVec3 targetSize = isCompressedCase ? IVec3(128, 128, 16) : IVec3(64, 64, 8);
+ const IVec3 srcSize = getTestedSize(srcTarget, srcFormat, targetSize);
+ const IVec3 dstSize = getTestedSize(dstTarget, dstFormat, targetSize);
group->addChild(new CopyImageTest(root->getContext(),
ImageInfo(srcFormat, srcTarget, srcSize),
diff --git a/modules/gles31/functional/es31fDebugTests.cpp b/modules/gles31/functional/es31fDebugTests.cpp
index d6dde30..b44d7e5 100644
--- a/modules/gles31/functional/es31fDebugTests.cpp
+++ b/modules/gles31/functional/es31fDebugTests.cpp
@@ -36,6 +36,7 @@
#include "es31fNegativeShaderDirectiveTests.hpp"
#include "es31fNegativePreciseTests.hpp"
#include "es31fNegativeAdvancedBlendEquationTests.hpp"
+#include "es31fNegativeShaderStorageTests.hpp"
#include "deUniquePtr.hpp"
#include "deRandom.hpp"
@@ -2954,6 +2955,7 @@
const vector<FunctionContainer> shaderDirectiveFuncs = wrapCoreFunctions(NegativeTestShared::getNegativeShaderDirectiveTestFunctions());
const vector<FunctionContainer> preciseFuncs = wrapCoreFunctions(NegativeTestShared::getNegativePreciseTestFunctions());
const vector<FunctionContainer> advancedBlendFuncs = wrapCoreFunctions(NegativeTestShared::getNegativeAdvancedBlendEquationTestFunctions());
+ const vector<FunctionContainer> shaderStorageFuncs = wrapCoreFunctions(NegativeTestShared::getNegativeShaderStorageTestFunctions());
const vector<FunctionContainer> externalFuncs = getUserMessageFuncs();
{
@@ -3059,6 +3061,7 @@
host->addChild(createChildCases(CASETYPE_CALLBACK, m_context, "shader_directive", "Negative Shader Directive Cases", shaderDirectiveFuncs));
host->addChild(createChildCases(CASETYPE_CALLBACK, m_context, "precise", "Negative Precise Cases", preciseFuncs));
host->addChild(createChildCases(CASETYPE_CALLBACK, m_context, "advanced_blend", "Negative Advanced Blend Equation Cases", advancedBlendFuncs));
+ host->addChild(createChildCases(CASETYPE_CALLBACK, m_context, "shader_storage", "Negative Shader Storage Cases", shaderStorageFuncs));
}
{
@@ -3081,6 +3084,7 @@
host->addChild(createChildCases(CASETYPE_LOG, m_context, "shader_directive", "Negative Shader Directive Cases", shaderDirectiveFuncs));
host->addChild(createChildCases(CASETYPE_LOG, m_context, "precise", "Negative Precise Cases", preciseFuncs));
host->addChild(createChildCases(CASETYPE_LOG, m_context, "advanced_blend", "Negative Advanced Blend Equation Cases", advancedBlendFuncs));
+ host->addChild(createChildCases(CASETYPE_LOG, m_context, "shader_storage", "Negative Shader Storage Cases", shaderStorageFuncs));
}
{
@@ -3103,6 +3107,7 @@
host->addChild(createChildCases(CASETYPE_GETERROR, m_context, "shader_directive", "Negative Shader Directive Cases", shaderDirectiveFuncs));
host->addChild(createChildCases(CASETYPE_GETERROR, m_context, "precise", "Negative Precise Cases", preciseFuncs));
host->addChild(createChildCases(CASETYPE_GETERROR, m_context, "advanced_blend", "Negative Advanced Blend Equation Cases", advancedBlendFuncs));
+ host->addChild(createChildCases(CASETYPE_GETERROR, m_context, "shader_storage", "Negative Shader Storage Cases", shaderStorageFuncs));
}
}
diff --git a/modules/gles31/functional/es31fNegativeBufferApiTests.cpp b/modules/gles31/functional/es31fNegativeBufferApiTests.cpp
index e4b67cd..309a507 100644
--- a/modules/gles31/functional/es31fNegativeBufferApiTests.cpp
+++ b/modules/gles31/functional/es31fNegativeBufferApiTests.cpp
@@ -446,15 +446,19 @@
ctx.endSection();
ctx.beginSection("GL_INVALID_VALUE is generated if target is GL_ATOMIC_COUNTER_BUFFER and offset is not multiples of 4.");
- ctx.glBindBufferRange(GL_ATOMIC_COUNTER_BUFFER, 0, bufTF, 5, 0);
+ ctx.glBindBufferRange(GL_ATOMIC_COUNTER_BUFFER, 0, bufTF, 5, 4);
ctx.expectError(GL_INVALID_VALUE);
ctx.endSection();
- ctx.beginSection("GL_INVALID_VALUE is generated if target is GL_SHADER_STORAGE_BUFFER and offset is not a multiple of the value of GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT.");
ctx.glGetIntegerv(GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT, &ssAlignment);
- ctx.glBindBufferRange(GL_ATOMIC_COUNTER_BUFFER, 0, bufTF, ssAlignment+1, 0);
- ctx.expectError(GL_INVALID_VALUE);
- ctx.endSection();
+
+ if (ssAlignment != 1)
+ {
+ ctx.beginSection("GL_INVALID_VALUE is generated if target is GL_SHADER_STORAGE_BUFFER and offset is not a multiple of the value of GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT.");
+ ctx.glBindBufferRange(GL_SHADER_STORAGE_BUFFER, 0, bufTF, ssAlignment+1, 4);
+ ctx.expectError(GL_INVALID_VALUE);
+ ctx.endSection();
+ }
}
ctx.glDeleteBuffers(1, &bufU);
@@ -497,24 +501,6 @@
ctx.expectError(GL_INVALID_VALUE);
ctx.endSection();
- if (contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2)))
- {
- int maxACize = 0x1234;
- int maxSSize = 0x1234;
-
- ctx.beginSection("GL_INVALID_VALUE is generated if target is GL_ATOMIC_COUNTER_BUFFER and index is greater than or equal to GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS.");
- ctx.glGetIntegerv(GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS, &maxACize);
- ctx.glBindBufferRange(GL_ATOMIC_COUNTER_BUFFER, maxACize, bufU, 0, 4);
- ctx.expectError(GL_INVALID_VALUE);
- ctx.endSection();
-
- ctx.beginSection("GL_INVALID_VALUE is generated if target is GL_SHADER_STORAGE_BUFFER and index is greater than or equal to GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS.");
- ctx.glGetIntegerv(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, &maxSSize);
- ctx.glBindBufferRange(GL_SHADER_STORAGE_BUFFER, maxSSize, bufU, 0, 4);
- ctx.expectError(GL_INVALID_VALUE);
- ctx.endSection();
- }
-
ctx.glDeleteBuffers(1, &bufU);
ctx.glDeleteBuffers(1, &bufTF);
}
diff --git a/modules/gles31/functional/es31fNegativeShaderApiTests.cpp b/modules/gles31/functional/es31fNegativeShaderApiTests.cpp
index 7c3fc0f..a80d6ca 100644
--- a/modules/gles31/functional/es31fNegativeShaderApiTests.cpp
+++ b/modules/gles31/functional/es31fNegativeShaderApiTests.cpp
@@ -2334,7 +2334,7 @@
}
}
-void compile_compute_shader_helper (NegativeTestContext& ctx, const char** computeShaderSource, GLint* compileStatus)
+void compile_compute_shader_helper (NegativeTestContext& ctx, const char* const* computeShaderSource, GLint* compileStatus)
{
GLuint shader = ctx.glCreateShader(GL_COMPUTE_SHADER);
@@ -2351,68 +2351,155 @@
ctx.beginSection("Compile Computer Shader");
{
- const char* computeShaderSource = "#version 300 es\n"
- "void main (void)\n"
- "{\n"
- "}\n\0";
+ const char* const computeShaderSource = "#version 300 es\n"
+ "void main (void)\n"
+ "{\n"
+ "}\n";
compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
if (compileStatus != GL_FALSE)
ctx.fail("Compute Shader should not have compiled with #version 300 es.");
}
{
- const char* computeShaderSource = "#version 310 es\n"
- "buffer SSBO { vec4 data }"
- "void main (void)\n"
- "{\n"
- "}\n\0";
+ const char* const computeShaderSource = "#version 310 es\n"
+ "buffer SSBO { vec4 data }"
+ "void main (void)\n"
+ "{\n"
+ "}\n";
compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
if (compileStatus != GL_FALSE)
ctx.fail("Compute Shader should not have compiled: incorrect SSBO syntax.");
}
{
- const char* computeShaderSource = "#version 310 es\n"
- "buffer SSBO { vec4 data;};"
- "uniform mat4 data;"
- "void main (void)\n"
- "{\n"
- "}\n\0";
+ const char* const computeShaderSource = "#version 310 es\n"
+ "buffer SSBO { vec4 data;};"
+ "uniform mat4 data;"
+ "void main (void)\n"
+ "{\n"
+ "}\n";
compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
if (compileStatus != GL_FALSE)
ctx.fail("Compute Shader should not have compiled: buffer variable redefinition.");
}
{
- const char* computeShaderSource = "#version 310 es\n"
- "buffer SSBO { vec4 data[]; vec4 moreData;};"
- "void main (void)\n"
- "{\n"
- "}\n\0";
+ const char* const computeShaderSource = "#version 310 es\n"
+ "buffer SSBO { vec4 data[]; vec4 moreData;};"
+ "void main (void)\n"
+ "{\n"
+ "}\n";
compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
if (compileStatus != GL_FALSE)
ctx.fail("Compute Shader should not have compiled: unspecified length buffer member not at the end.");
}
{
- const char* computeShaderSource = "#version 310 es\n"
- "in vec4 data;"
- "void main (void)\n"
- "{\n"
- "}\n\0";
+ const char* const computeShaderSource = "#version 310 es\n"
+ "in vec4 data;"
+ "void main (void)\n"
+ "{\n"
+ "}\n";
compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
if (compileStatus != GL_FALSE)
ctx.fail("Compute Shader should not have compiled: input qualifier used.");
}
{
- const char* computeShaderSource = "#version 310 es\n"
- "shared uint data = 0;";
+ const char* const computeShaderSource = "#version 310 es\n"
+ "shared uint data = 0;";
compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
if (compileStatus != GL_FALSE)
ctx.fail("Compute Shader should not have compiled: shared-qualified variable initialized.");
}
+ {
+ const char* const computeShaderSource = "#version 310 es\n"
+ "buffer SSBO { vec4 data; vec4 moreData[];} ssbo;"
+ "void test (vec4 data[10]) {}"
+ "void main (void)\n"
+ "{\n"
+ " test(ssbo.moreData);"
+ "}\n";
+
+ compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
+ if (compileStatus != GL_FALSE)
+ ctx.fail("Compute Shader should not have compiled: unspecified length buffer member passed as argument to function.");
+ }
+ {
+ const char* const computeShaderSource = "#version 310 es\n"
+ "buffer SSBO { vec4 data; vec4 moreData[];} ssbo;"
+ "void main (void)\n"
+ "{\n"
+ " vec4 var = ssbo.moreData[-1];"
+ "}\n";
+
+ compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
+ if (compileStatus != GL_FALSE)
+ ctx.fail("Compute Shader should not have compiled: unspecified length buffer member indexed with negative constant expression.");
+ }
+ {
+ const char* const computeShaderSource = "#version 310 es\n"
+ "layout(binding=-1) buffer SSBO { vec4 data;};"
+ "void main (void)\n"
+ "{\n"
+ "}\n";
+
+ compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
+ if (compileStatus != GL_FALSE)
+ ctx.fail("Compute Shader should not have compiled: binding point less than zero.");
+ }
+ {
+ const char* const computeShaderSource = "#version 310 es\n"
+ "layout(binding=1) buffer;"
+ "layout(binding=2) buffer SSBO { vec4 data;};"
+ "void main (void)\n"
+ "{\n"
+ "}\n";
+
+ compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
+ if (compileStatus != GL_FALSE)
+ ctx.fail("Compute Shader should not have compiled: binding point specified for global scope.");
+ }
+ {
+ const char* const computeShaderSource = "#version 310 es\n"
+ "buffer SSBO {"
+ " layout(binding=1) vec4 data;"
+ " layout(binding=2) vec4 moreData[];"
+ "} ssbo;"
+ "void main (void)\n"
+ "{\n"
+ "}\n";
+
+ compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
+ if (compileStatus != GL_FALSE)
+ ctx.fail("Compute Shader should not have compiled: binding point specified for block member declarations.");
+ }
+ {
+ const char* const computeShaderSource = "#version 310 es\n"
+ "readonly buffer SSBO {vec4 data;} ssbo;"
+ "void main (void)\n"
+ "{\n"
+ "ssbo.data = vec4(1, 1, 1, 1);"
+ "}\n";
+
+ compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
+ if (compileStatus != GL_FALSE)
+ ctx.fail("Compute Shader should not have compiled: writing to buffer block qualified with readonly.");
+ }
+ {
+ const char* const computeShaderSource = "#version 310 es\n"
+ "writeonly buffer SSBO {vec4 data;} ssbo;"
+ "void main (void)\n"
+ "{\n"
+ "vec4 var = ssbo.data;"
+ "}\n";
+
+ compile_compute_shader_helper(ctx, &computeShaderSource, &compileStatus);
+ if (compileStatus != GL_FALSE)
+ ctx.fail("Compute Shader should not have compiled: reading from buffer block qualified with writeonly.");
+ }
+
ctx.endSection();
}
diff --git a/modules/gles31/functional/es31fNegativeShaderDirectiveTests.cpp b/modules/gles31/functional/es31fNegativeShaderDirectiveTests.cpp
index 2b54462..f3b5ac4 100644
--- a/modules/gles31/functional/es31fNegativeShaderDirectiveTests.cpp
+++ b/modules/gles31/functional/es31fNegativeShaderDirectiveTests.cpp
@@ -126,14 +126,42 @@
if (contextSupports(ctx.getRenderContext().getType() , glu::ApiType::es(3, 2)))
{
ctx.beginSection("gl_BoundingBox does not require the OES/EXT suffix in a 320 es shader.");
- const std::string source = "#version 320 es\n"
- "layout(vertices = 3) out;\n"
- "void main()\n"
- "{\n"
- " gl_BoundingBox[0] = vec4(0.0, 0.0, 0.0, 0.0);\n"
- " gl_BoundingBox[1] = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "}\n";
- verifyShader(ctx, glu::SHADERTYPE_TESSELLATION_CONTROL, source, EXPECT_RESULT_PASS);
+ {
+ const std::string source = "#version 320 es\n"
+ "layout(vertices = 3) out;\n"
+ "void main()\n"
+ "{\n"
+ " gl_BoundingBox[0] = vec4(0.0, 0.0, 0.0, 0.0);\n"
+ " gl_BoundingBox[1] = vec4(0.0, 0.0, 0.0, 0.0);\n"
+ "}\n";
+ verifyShader(ctx, glu::SHADERTYPE_TESSELLATION_CONTROL, source, EXPECT_RESULT_PASS);
+ }
+ ctx.endSection();
+
+ ctx.beginSection("Invalid index used when assigning to gl_BoundingBox in 320 es shader.");
+ {
+ const std::string source = "#version 320 es\n"
+ "layout(vertices = 3) out;\n"
+ "void main()\n"
+ "{\n"
+ " gl_BoundingBox[0] = vec4(0.0, 0.0, 0.0, 0.0);\n"
+ " gl_BoundingBox[2] = vec4(0.0, 0.0, 0.0, 0.0);\n"
+ "}\n";
+ verifyShader(ctx, glu::SHADERTYPE_TESSELLATION_CONTROL, source, EXPECT_RESULT_FAIL);
+ }
+ ctx.endSection();
+
+ ctx.beginSection("Invalid type assignment to per-patch output array in 320 es shader.");
+ {
+ const std::string source = "#version 320 es\n"
+ "layout(vertices = 3) out;\n"
+ "void main()\n"
+ "{\n"
+ " gl_BoundingBox[0] = ivec4(0, 0, 0, 0);\n"
+ " gl_BoundingBox[1] = ivec4(0, 0, 0, 0);\n"
+ "}\n";
+ verifyShader(ctx, glu::SHADERTYPE_TESSELLATION_CONTROL, source, EXPECT_RESULT_FAIL);
+ }
ctx.endSection();
}
}
diff --git a/modules/gles31/functional/es31fNegativeShaderStorageTests.cpp b/modules/gles31/functional/es31fNegativeShaderStorageTests.cpp
new file mode 100644
index 0000000..773d728
--- /dev/null
+++ b/modules/gles31/functional/es31fNegativeShaderStorageTests.cpp
@@ -0,0 +1,324 @@
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES 3.1 Module
+ * -------------------------------------------------
+ *
+ * Copyright 2016 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 Negative Shader Storage Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "es31fNegativeShaderStorageTests.hpp"
+
+#include "gluShaderProgram.hpp"
+#include "glwDefs.hpp"
+#include "glwEnums.hpp"
+
+namespace deqp
+{
+namespace gles31
+{
+namespace Functional
+{
+namespace NegativeTestShared
+{
+namespace
+{
+
+void verifyProgram(NegativeTestContext& ctx, glu::ProgramSources sources)
+{
+ tcu::TestLog& log = ctx.getLog();
+ const glu::ShaderProgram program (ctx.getRenderContext(), sources);
+ bool testFailed = false;
+
+ log << program;
+
+ testFailed = program.getProgramInfo().linkOk;
+
+ if (testFailed)
+ {
+ const char* const message("Program was not expected to link.");
+ log << tcu::TestLog::Message << message << tcu::TestLog::EndMessage;
+ ctx.fail(message);
+ }
+}
+
+const char* getShaderExtensionDeclaration (glw::GLenum glShaderType)
+{
+ switch (glShaderType)
+ {
+ case GL_TESS_CONTROL_SHADER:
+ case GL_TESS_EVALUATION_SHADER: return "#extension GL_EXT_tessellation_shader : require\n";
+ case GL_GEOMETRY_SHADER: return "#extension GL_EXT_geometry_shader : require\n";
+ default:
+ return "";
+ }
+}
+
+glu::ShaderType getGLUShaderType (glw::GLenum glShaderType)
+{
+ switch (glShaderType)
+ {
+ case GL_VERTEX_SHADER: return glu::SHADERTYPE_VERTEX;
+ case GL_FRAGMENT_SHADER: return glu::SHADERTYPE_FRAGMENT;
+ case GL_TESS_CONTROL_SHADER: return glu::SHADERTYPE_TESSELLATION_CONTROL;
+ case GL_TESS_EVALUATION_SHADER: return glu::SHADERTYPE_TESSELLATION_EVALUATION;
+ case GL_GEOMETRY_SHADER: return glu::SHADERTYPE_GEOMETRY;
+ case GL_COMPUTE_SHADER: return glu::SHADERTYPE_COMPUTE;
+ default:
+ DE_FATAL("Unknown shader type");
+ return glu::SHADERTYPE_LAST;
+ }
+}
+
+glw::GLenum getMaxSSBlockSizeEnum (glw::GLenum glShaderType)
+{
+ switch (glShaderType)
+ {
+ case GL_VERTEX_SHADER: return GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS;
+ case GL_FRAGMENT_SHADER: return GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS;
+ case GL_TESS_CONTROL_SHADER: return GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS;
+ case GL_TESS_EVALUATION_SHADER: return GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS;
+ case GL_GEOMETRY_SHADER: return GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS;
+ case GL_COMPUTE_SHADER: return GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS;
+ default:
+ DE_FATAL("Unknown shader type");
+ return -1;
+ }
+}
+
+int getMaxSSBlockSize (NegativeTestContext& ctx, glw::GLenum glShaderType)
+{
+ int maxSSBlocks = 0;
+ ctx.glGetIntegerv(getMaxSSBlockSizeEnum(glShaderType), &maxSSBlocks);
+
+ return maxSSBlocks;
+}
+
+std::string genBlockSource (NegativeTestContext& ctx, deInt64 numSSBlocks, glw::GLenum shaderType)
+{
+ const bool isES32 = contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2));
+ const glu::GLSLVersion version = isES32 ? glu::GLSL_VERSION_320_ES : glu::GLSL_VERSION_310_ES;
+ std::ostringstream source;
+
+ source << glu::getGLSLVersionDeclaration(version) << "\n"
+ << ((isES32) ? "" : getShaderExtensionDeclaration(shaderType));
+
+ switch (shaderType)
+ {
+ case GL_VERTEX_SHADER:
+ case GL_FRAGMENT_SHADER:
+ break;
+
+ case GL_COMPUTE_SHADER:
+ source << "layout (local_size_x = 1) in;\n";
+ break;
+
+ case GL_GEOMETRY_SHADER:
+ source << "layout(points) in;\n"
+ << "layout(line_strip, max_vertices = 3) out;\n";
+ break;
+
+ case GL_TESS_CONTROL_SHADER:
+ source << "layout(vertices = 10) out;\n";
+ break;
+
+ case GL_TESS_EVALUATION_SHADER:
+ source << "layout(triangles) in;\n";
+ break;
+
+ default:
+ DE_FATAL("Unknown shader type");
+ break;
+ }
+
+ source << "\n"
+ << "layout(std430, binding = 0) buffer Block {\n"
+ << " int value;\n"
+ << "} sb_in[" << numSSBlocks << "];\n"
+ << "void main(void) { sb_in[0].value = 1; }\n";
+
+ return source.str();
+}
+
+std::string genCommonSource (NegativeTestContext& ctx, glw::GLenum shaderType)
+{
+ const bool isES32 = contextSupports(ctx.getRenderContext().getType(), glu::ApiType::es(3, 2));
+ const glu::GLSLVersion version = isES32 ? glu::GLSL_VERSION_320_ES : glu::GLSL_VERSION_310_ES;
+ std::ostringstream source;
+
+ source << glu::getGLSLVersionDeclaration(version) << "\n"
+ << ((isES32) ? "" : getShaderExtensionDeclaration(shaderType));
+
+ switch (shaderType)
+ {
+ case GL_TESS_CONTROL_SHADER:
+ source << "layout(vertices = 3) out;\n"
+ << "void main() {}\n";
+ break;
+
+ case GL_TESS_EVALUATION_SHADER:
+ source << "layout(triangles, equal_spacing, cw) in;\n"
+ << "void main() {}\n";
+ break;
+
+ default:
+ source << "void main() {}\n";
+ break;
+ }
+
+ return source.str();
+}
+
+int genMaxSSBlocksSource (NegativeTestContext& ctx, glw::GLenum glShaderType, glu::ProgramSources& sources)
+{
+ int maxSSBlocks = getMaxSSBlockSize(ctx, glShaderType);
+ const std::string shaderSrc = genBlockSource(ctx, (maxSSBlocks), glShaderType);
+
+ sources.sources[getGLUShaderType(glShaderType)].push_back(shaderSrc);
+
+ return maxSSBlocks;
+}
+
+void block_number_limits (NegativeTestContext& ctx)
+{
+ const glw::GLenum glShaderTypes[] =
+ {
+ GL_VERTEX_SHADER,
+ GL_FRAGMENT_SHADER,
+ GL_TESS_CONTROL_SHADER,
+ GL_TESS_EVALUATION_SHADER,
+ GL_GEOMETRY_SHADER,
+ GL_COMPUTE_SHADER,
+ };
+
+ const std::string vertSource = genCommonSource(ctx, GL_VERTEX_SHADER);
+ const std::string fragSource = genCommonSource(ctx, GL_FRAGMENT_SHADER);
+ const std::string tessControlSource = genCommonSource(ctx, GL_TESS_CONTROL_SHADER);
+ const std::string tessEvalSource = genCommonSource(ctx, GL_TESS_EVALUATION_SHADER);
+
+ for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(glShaderTypes); ndx++)
+ {
+ ctx.beginSection("maxShaderStorageBlocks: Exceed limits");
+
+ int maxSSBlocks = getMaxSSBlockSize(ctx, glShaderTypes[ndx]);
+ std::string source = genBlockSource(ctx, maxSSBlocks+1, glShaderTypes[ndx]);
+
+ glu::ProgramSources sources;
+
+ if (maxSSBlocks == 0 || !ctx.isShaderSupported(static_cast<glu::ShaderType>(getGLUShaderType(glShaderTypes[ndx]))))
+ {
+ ctx.endSection();
+ continue;
+ }
+
+ switch (glShaderTypes[ndx])
+ {
+ case GL_VERTEX_SHADER:
+ sources << glu::VertexSource(source)
+ << glu::FragmentSource(fragSource);
+ break;
+
+ case GL_FRAGMENT_SHADER:
+ sources << glu::VertexSource(vertSource)
+ << glu::FragmentSource(source);
+ break;
+
+ case GL_TESS_CONTROL_SHADER:
+ sources << glu::VertexSource(vertSource)
+ << glu::FragmentSource(fragSource)
+ << glu::TessellationControlSource(source)
+ << glu::TessellationEvaluationSource(tessEvalSource);
+ break;
+
+ case GL_TESS_EVALUATION_SHADER:
+ sources << glu::VertexSource(vertSource)
+ << glu::FragmentSource(fragSource)
+ << glu::TessellationControlSource(tessControlSource)
+ << glu::TessellationEvaluationSource(source);
+ break;
+
+ case GL_GEOMETRY_SHADER:
+ sources << glu::VertexSource(vertSource)
+ << glu::FragmentSource(fragSource)
+ << glu::GeometrySource(source);
+ break;
+
+ case GL_COMPUTE_SHADER:
+ sources << glu::ComputeSource(source);
+ break;
+
+ default:
+ DE_FATAL("Unknown shader type");
+ break;
+ }
+
+ verifyProgram(ctx, sources);
+ ctx.endSection();
+ }
+}
+
+void max_combined_block_number_limit (NegativeTestContext& ctx)
+{
+ ctx.beginSection("maxCombinedShaderStorageBlocks: Exceed limits");
+
+ glu::ProgramSources sources;
+
+ int combinedSSBlocks = 0;
+ int maxCombinedSSBlocks = 0;
+
+ combinedSSBlocks += genMaxSSBlocksSource(ctx, GL_VERTEX_SHADER, sources);
+ combinedSSBlocks += genMaxSSBlocksSource(ctx, GL_FRAGMENT_SHADER, sources);
+
+ if ((ctx.isShaderSupported(glu::SHADERTYPE_TESSELLATION_CONTROL)) && (ctx.isShaderSupported(glu::SHADERTYPE_TESSELLATION_EVALUATION)))
+ {
+ combinedSSBlocks += genMaxSSBlocksSource(ctx, GL_TESS_CONTROL_SHADER, sources);
+ combinedSSBlocks += genMaxSSBlocksSource(ctx, GL_TESS_EVALUATION_SHADER, sources);
+ }
+
+ if (ctx.isShaderSupported(glu::SHADERTYPE_GEOMETRY))
+ combinedSSBlocks += genMaxSSBlocksSource(ctx, GL_GEOMETRY_SHADER, sources);
+
+ ctx.glGetIntegerv(GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS, &maxCombinedSSBlocks);
+
+ ctx.getLog() << tcu::TestLog::Message << "GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS: " << maxCombinedSSBlocks << tcu::TestLog::EndMessage;
+ ctx.getLog() << tcu::TestLog::Message << "Combined shader storage blocks: " << combinedSSBlocks << tcu::TestLog::EndMessage;
+
+ if (combinedSSBlocks > maxCombinedSSBlocks)
+ verifyProgram(ctx, sources);
+ else
+ ctx.getLog() << tcu::TestLog::Message << "Test skipped: Combined shader storage blocks < GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS: " << tcu::TestLog::EndMessage;
+
+ ctx.endSection();
+}
+
+} // anonymous
+
+std::vector<FunctionContainer> getNegativeShaderStorageTestFunctions ()
+{
+ const FunctionContainer funcs[] =
+ {
+ { block_number_limits, "block_number_limits", "Invalid shader linkage" },
+ { max_combined_block_number_limit, "max_combined_block_number_limit", "Invalid shader linkage" },
+ };
+
+ return std::vector<FunctionContainer>(DE_ARRAY_BEGIN(funcs), DE_ARRAY_END(funcs));
+}
+
+} // NegativeTestShared
+} // Functional
+} // gles31
+} // deqp
diff --git a/modules/gles31/functional/es31fNegativeShaderStorageTests.hpp b/modules/gles31/functional/es31fNegativeShaderStorageTests.hpp
new file mode 100644
index 0000000..13cbd1f
--- /dev/null
+++ b/modules/gles31/functional/es31fNegativeShaderStorageTests.hpp
@@ -0,0 +1,45 @@
+#ifndef _ES31FNEGATIVESHADERSTORAGETESTS_HPP
+#define _ES31FNEGATIVESHADERSTORAGETESTS_HPP
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES 3.1 Module
+ * -------------------------------------------------
+ *
+ * Copyright 2016 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 Negative Shader Storage Tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "es31fNegativeTestShared.hpp"
+
+namespace deqp
+{
+namespace gles31
+{
+namespace Functional
+{
+namespace NegativeTestShared
+{
+
+std::vector<FunctionContainer> getNegativeShaderStorageTestFunctions (void);
+
+} // NegativeTestShared
+} // Functional
+} // gles31
+} // deqp
+
+#endif // _ES31FNEGATIVESHADERSTORAGETESTS_HPP
diff --git a/modules/gles31/functional/es31fNegativeStateApiTests.cpp b/modules/gles31/functional/es31fNegativeStateApiTests.cpp
index 1f1cfeb..19184c6 100644
--- a/modules/gles31/functional/es31fNegativeStateApiTests.cpp
+++ b/modules/gles31/functional/es31fNegativeStateApiTests.cpp
@@ -184,8 +184,9 @@
void get_integeri_v (NegativeTestContext& ctx)
{
- GLint data = -1;
- GLint maxUniformBufferBindings = 0;
+ GLint data = -1;
+ GLint maxUniformBufferBindings = 0;
+ GLint maxShaderStorageBufferBindings = 0;
ctx.beginSection("GL_INVALID_ENUM is generated if name is not an accepted value.");
ctx.glGetIntegeri_v(-1, 0, &data);
@@ -198,12 +199,20 @@
ctx.glGetIntegeri_v(GL_UNIFORM_BUFFER_BINDING, maxUniformBufferBindings, &data);
ctx.expectError(GL_INVALID_VALUE);
ctx.endSection();
+
+ ctx.beginSection("GL_INVALID_VALUE is generated if index is outside of the valid range for the indexed state target.");
+ ctx.glGetIntegerv(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, &maxShaderStorageBufferBindings);
+ ctx.expectError(GL_NO_ERROR);
+ ctx.glGetIntegeri_v(GL_SHADER_STORAGE_BUFFER_BINDING, maxShaderStorageBufferBindings, &data);
+ ctx.expectError(GL_INVALID_VALUE);
+ ctx.endSection();
}
void get_integer64i_v (NegativeTestContext& ctx)
{
- GLint64 data = (GLint64)-1;
- GLint maxUniformBufferBindings = 0;
+ GLint64 data = (GLint64)-1;
+ GLint maxUniformBufferBindings = 0;
+ GLint maxShaderStorageBufferBindings = 0;
ctx.beginSection("GL_INVALID_ENUM is generated if name is not an accepted value.");
ctx.glGetInteger64i_v(-1, 0, &data);
@@ -216,6 +225,15 @@
ctx.glGetInteger64i_v(GL_UNIFORM_BUFFER_START, maxUniformBufferBindings, &data);
ctx.expectError(GL_INVALID_VALUE);
ctx.endSection();
+
+ ctx.beginSection("GL_INVALID_VALUE is generated if index is outside of the valid range for the indexed state target.");
+ ctx.glGetIntegerv(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, &maxShaderStorageBufferBindings);
+ ctx.expectError(GL_NO_ERROR);
+ ctx.glGetInteger64i_v(GL_SHADER_STORAGE_BUFFER_START, maxShaderStorageBufferBindings, &data);
+ ctx.expectError(GL_INVALID_VALUE);
+ ctx.glGetInteger64i_v(GL_SHADER_STORAGE_BUFFER_SIZE, maxShaderStorageBufferBindings, &data);
+ ctx.expectError(GL_INVALID_VALUE);
+ ctx.endSection();
}
void get_string (NegativeTestContext& ctx)
diff --git a/modules/gles31/functional/es31fStencilTexturingTests.cpp b/modules/gles31/functional/es31fStencilTexturingTests.cpp
index c592288..92bb9a1 100644
--- a/modules/gles31/functional/es31fStencilTexturingTests.cpp
+++ b/modules/gles31/functional/es31fStencilTexturingTests.cpp
@@ -716,7 +716,7 @@
tcu::Sampler::NEAREST,
tcu::Sampler::NEAREST));
tcu::LookupPrecision lookupPrec;
- tcu::LodPrecision lodPrec;
+ tcu::LodPrecision lodPrec (tcu::LodPrecision::RULE_OPENGL);
bool compareOk;
lookupPrec.colorMask = tcu::BVec4(true, true, true, true);
diff --git a/modules/gles31/functional/es31fTessellationTests.cpp b/modules/gles31/functional/es31fTessellationTests.cpp
index e367fd3..cabb96f 100644
--- a/modules/gles31/functional/es31fTessellationTests.cpp
+++ b/modules/gles31/functional/es31fTessellationTests.cpp
@@ -7230,7 +7230,7 @@
queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_texture_image_units", "Test MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS", GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS, 16));
queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_output_components", "Test MAX_TESS_CONTROL_OUTPUT_COMPONENTS", GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS, 64));
queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_patch_components", "Test MAX_TESS_PATCH_COMPONENTS", GL_MAX_TESS_PATCH_COMPONENTS, 120));
- queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_total_output_components", "Test MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS", GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS, 4096));
+ queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_total_output_components", "Test MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS", GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS, 2048));
queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_output_components", "Test MAX_TESS_EVALUATION_OUTPUT_COMPONENTS", GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS, 64));
queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_uniform_blocks", "Test MAX_TESS_CONTROL_UNIFORM_BLOCKS", GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS, 12));
queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_uniform_blocks", "Test MAX_TESS_EVALUATION_UNIFORM_BLOCKS", GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS, 12));
diff --git a/modules/gles31/functional/es31fTextureBorderClampTests.cpp b/modules/gles31/functional/es31fTextureBorderClampTests.cpp
index 0587f5a..05f383e 100644
--- a/modules/gles31/functional/es31fTextureBorderClampTests.cpp
+++ b/modules/gles31/functional/es31fTextureBorderClampTests.cpp
@@ -912,7 +912,7 @@
{
const tcu::PixelFormat pixelFormat = m_context.getRenderTarget().getPixelFormat();
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
std::vector<float> texCoord;
bool verificationOk;
@@ -2211,7 +2211,7 @@
const tcu::IVec4 colorBits = tcu::max(glu::TextureTestUtil::getBitsVec(pixelFormat) - tcu::IVec4(colorErrorBits), tcu::IVec4(0));
tcu::Surface reference (renderedFrame.getWidth(), renderedFrame.getHeight());
tcu::Surface errorMask (renderedFrame.getWidth(), renderedFrame.getHeight());
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::LookupPrecision lookupPrecision;
int numFailedPixels;
diff --git a/modules/gles31/functional/es31fTextureFilteringTests.cpp b/modules/gles31/functional/es31fTextureFilteringTests.cpp
index bc26811..5784c37 100644
--- a/modules/gles31/functional/es31fTextureFilteringTests.cpp
+++ b/modules/gles31/functional/es31fTextureFilteringTests.cpp
@@ -376,7 +376,7 @@
const tcu::PixelFormat pixelFormat = renderCtx.getRenderTarget().getPixelFormat();
const tcu::IVec4 coordBits = tcu::IVec4(10);
const tcu::IVec4 colorBits = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
- tcu::LodPrecision lodPrecision;
+ tcu::LodPrecision lodPrecision (tcu::LodPrecision::RULE_OPENGL);
tcu::LookupPrecision lookupPrecision;
lodPrecision.derivateBits = 10;
diff --git a/modules/glshared/glsFboCompletenessTests.cpp b/modules/glshared/glsFboCompletenessTests.cpp
index 3901ec1..791d8c9 100644
--- a/modules/glshared/glsFboCompletenessTests.cpp
+++ b/modules/glshared/glsFboCompletenessTests.cpp
@@ -232,6 +232,12 @@
(deUint32)(DEPTH_RENDERABLE | STENCIL_RENDERABLE | TEXTURE_VALID),
GLS_ARRAY_RANGE(s_oesPackedDepthStencilTexFormats)
},
+ // The ANGLE extension incorporates GL_OES_depth_texture/GL_OES_packed_depth_stencil.
+ {
+ "GL_ANGLE_depth_texture",
+ (deUint32)(REQUIRED_RENDERABLE | DEPTH_RENDERABLE | TEXTURE_VALID),
+ GLS_ARRAY_RANGE(s_oesDepthTextureFormats),
+ },
// \todo [2013-12-10 lauri] Find out if OES_texture_half_float is really a
// requirement on ES3 also. Or is color_buffer_half_float applicatble at
// all on ES3, since there's also EXT_color_buffer_float?
diff --git a/scripts/egl/common.py b/scripts/egl/common.py
index 7554f2b..c8761ce 100644
--- a/scripts/egl/common.py
+++ b/scripts/egl/common.py
@@ -39,8 +39,8 @@
EGL_SOURCE = khr_util.registry_cache.RegistrySource(
"egl.xml",
- 32725,
- "3464385212ae9b816d121c77bc4191ed3dfb32ce7bfca1a02b42fcefa3ec2354")
+ 33315,
+ "19f3b517f0dede56a6a94b820d08149ef5e1726f58202f47d69fa27f6f483bd2")
VERSION = '1.5'
@@ -65,7 +65,8 @@
"EGL_EXT_buffer_age",
"EGL_KHR_partial_update",
"EGL_KHR_swap_buffers_with_damage",
- "EGL_KHR_mutable_render_buffer"
+ "EGL_KHR_mutable_render_buffer",
+ "EGL_EXT_pixel_format_float"
]
PROTECTS = [
"KHRONOS_SUPPORT_INT64"
diff --git a/scripts/egl/str_util.py b/scripts/egl/str_util.py
index 4372932..b77e69b 100644
--- a/scripts/egl/str_util.py
+++ b/scripts/egl/str_util.py
@@ -141,6 +141,7 @@
"YUV_PLANE_BPP_8_EXT",
"YUV_PLANE_BPP_10_EXT",
]),
+ ("ColorComponentType", ["COLOR_COMPONENT_TYPE_FIXED_EXT", "COLOR_COMPONENT_TYPE_FLOAT_EXT"]),
("SurfaceTarget", ["READ", "DRAW"]),
# ConfigAttrib values