Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
authorAlexander Galazin <alexander.galazin@arm.com>
Thu, 30 Nov 2017 15:45:30 +0000 (16:45 +0100)
committerAlexander Galazin <alexander.galazin@arm.com>
Fri, 1 Dec 2017 11:24:13 +0000 (12:24 +0100)
Change-Id: I5c167c3e0789067ce231180b0b9f531b0b1550db

23 files changed:
1  2 
AndroidGen.mk
android/cts/master/vk-master.txt
external/openglcts/modules/gl/CMakeLists.txt
external/vulkancts/modules/vulkan/api/vktApiCommandBuffersTests.cpp
external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
external/vulkancts/modules/vulkan/binding_model/vktBindingShaderAccessTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawDifferingInterpolationTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawImageObjectUtil.cpp
external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.cpp
external/vulkancts/modules/vulkan/renderpass/vktRenderPassSampleReadTests.cpp
external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp
external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesTests.cpp
external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.hpp
external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.cpp
external/vulkancts/modules/vulkan/vktTestPackage.cpp
external/vulkancts/mustpass/1.0.1/src/master.txt
external/vulkancts/mustpass/1.0.1/vk-default.txt
external/vulkancts/mustpass/1.0.2/src/master.txt
external/vulkancts/mustpass/1.0.2/vk-default.txt
external/vulkancts/mustpass/1.1.0/vk-default.txt

diff --cc AndroidGen.mk
Simple merge
index f35e0ff,f1fa4d3..61c0731
mode 100755,100644..100755
@@@ -172435,13 -168433,19 +172879,23 @@@ dEQP-VK.binding_model.shader_access.sec
  dEQP-VK.binding_model.shader_access.secondary_cmd_buf.with_push_template.storage_buffer.vertex_fragment.multiple_arbitrary_descriptors.offset_view_nonzero
  dEQP-VK.binding_model.shader_access.secondary_cmd_buf.with_push_template.storage_buffer.vertex_fragment.descriptor_array.offset_view_zero
  dEQP-VK.binding_model.shader_access.secondary_cmd_buf.with_push_template.storage_buffer.vertex_fragment.descriptor_array.offset_view_nonzero
- dEQP-VK.spirv_assembly.instruction.compute.opnop.literal_localsize
- dEQP-VK.spirv_assembly.instruction.compute.opnop.literal_and_specid_localsize
- dEQP-VK.spirv_assembly.instruction.compute.opnop.specid_localsize
 +dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_0_compute
 +dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_1_compute
 +dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_2_compute
 +dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_3_compute
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize_x
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize_x
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize_x
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize_y
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize_y
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize_y
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize_z
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize_z
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize_z
+ dEQP-VK.spirv_assembly.instruction.compute.opnop.all
  dEQP-VK.spirv_assembly.instruction.compute.opatomic.iadd
  dEQP-VK.spirv_assembly.instruction.compute.opatomic.isub
  dEQP-VK.spirv_assembly.instruction.compute.opatomic.iinc
@@@ -209709,14 -205538,10 +210238,14 @@@ dEQP-VK.draw.negative_viewport_height.f
  dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltazero
  dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltasmall
  dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltaone
- dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltalarge
+ dEQP-VK.draw.inverted_depth_ranges.depthclamp_depth_range_unrestricted
  dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltasmall
  dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltaone
- dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltalarge
+ dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_depth_range_unrestricted
 +dEQP-VK.draw.differing_interpolation.flat_0
 +dEQP-VK.draw.differing_interpolation.flat_1
 +dEQP-VK.draw.differing_interpolation.noperspective_0
 +dEQP-VK.draw.differing_interpolation.noperspective_1
  dEQP-VK.compute.basic.empty_shader
  dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation
  dEQP-VK.compute.basic.ubo_to_ssbo_single_group
@@@ -245495,141 -241153,276 +246024,411 @@@ dEQP-VK.sparse_resources.image_sparse_r
  dEQP-VK.sparse_resources.image_sparse_residency.3d.rgba8ui.512_256_16
  dEQP-VK.sparse_resources.image_sparse_residency.3d.rgba8ui.1024_128_8
  dEQP-VK.sparse_resources.image_sparse_residency.3d.rgba8ui.11_137_3
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rgba8ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rgba8ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rgba8ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rgba8ui
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rgba8ui
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r32i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r32i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r32i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r16i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r16i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r16i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r8i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r8i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r8i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg32i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg32i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg32i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg16i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg16i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg16i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg8i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg8i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg8i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba32ui.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba32ui.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba32ui.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba16ui.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba16ui.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba16ui.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba8ui.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba8ui.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba8ui.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r32i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r32i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r32i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r16i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r16i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r16i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r8i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r8i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r8i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg32i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg32i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg32i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg16i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg16i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg16i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg8i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg8i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg8i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba32ui.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba32ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba32ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba16ui.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba16ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba16ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba8ui.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba8ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba8ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r32i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r32i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r32i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r16i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r16i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r16i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r8i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r8i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r8i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg32i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg32i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg32i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg16i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg16i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg16i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg8i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg8i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg8i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba32ui.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba32ui.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba32ui.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba16ui.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba16ui.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba16ui.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba8ui.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba8ui.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba8ui.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r32i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r32i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r32i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r16i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r16i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r16i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r8i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r8i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r8i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg32i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg32i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg32i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg16i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg16i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg16i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg8i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg8i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg8i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba32ui.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba32ui.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba32ui.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba16ui.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba16ui.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba16ui.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba8ui.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba8ui.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba8ui.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r32i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r32i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r32i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r16i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r16i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r16i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r8i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r8i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r8i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg32i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg32i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg32i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg16i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg16i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg16i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg8i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg8i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg8i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba32ui.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba32ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba32ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba16ui.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba16ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba16ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba8ui.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba8ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba8ui.11_137_3
  dEQP-VK.sparse_resources.mipmap_sparse_residency.2d.r32i.512_256_1
  dEQP-VK.sparse_resources.mipmap_sparse_residency.2d.r32i.1024_128_1
  dEQP-VK.sparse_resources.mipmap_sparse_residency.2d.r32i.11_137_1
@@@ -130,6 -132,31 +132,31 @@@ set(GLCTS_GL_LIB
        tcutil
        )
  
 -      set(GLCTS_GL_LIBS ${GLCTS_GL_LIBS} ${GLSLANG_LIBRARY})
+ # Add glslang
+ if (DEQP_HAVE_GLSLANG)
+       include_directories(${GLSLANG_INCLUDE_PATH})
+       add_definitions(-DDEQP_HAVE_GLSLANG=1)
+       # \note Code interfacing with glslang needs to include third-party headers
+       #       that cause all sorts of warnings to appear.
+       if (DE_COMPILER_IS_GCC OR DE_COMPILER_IS_CLANG)
+               set_source_files_properties(
+                       FILES gl4cGlSpirvTests.cpp
+                       PROPERTIES COMPILE_FLAGS "${DE_3RD_PARTY_CXX_FLAGS} -std=c++11")
+       endif ()
++      set(GLCTS_GL_LIBS ${GLCTS_GL_LIBS} ${GLSLANG_LIBRARIES})
+ endif ()
+ # Add spirv-tools
+ if(DEQP_HAVE_SPIRV_TOOLS)
+       include_directories(${spirv-tools_SOURCE_DIR}/include)
+       include_directories(${spirv-tools_SOURCE_DIR}/external/include)
+       add_definitions(-DDEQP_HAVE_SPIRV_TOOLS=1)
+       set(GLCTS_GL_LIBS ${GLCTS_GL_LIBS} SPIRV-Tools)
+ endif()
  if (DEQP_GTF_AVAILABLE)
        list(APPEND GLCTS_GL_LIBS glcts-gtf)
  endif ()
index cc827af,0000000..34fdd82
mode 100644,000000..100644
--- /dev/null
@@@ -1,384 -1,0 +1,385 @@@
-                       colorTargetImages[frameIdx]                                                             = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator());
 +/*------------------------------------------------------------------------
 + * Vulkan Conformance Tests
 + * ------------------------
 + *
 + * Copyright (c) 2017 The Khronos Group Inc.
 + * Copyright (c) 2017 Google Inc.
 + * Copyright (c) 2017 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 Differing iterpolation decorations tests
 + *//*--------------------------------------------------------------------*/
 +
 +#include "vktDrawDifferingInterpolationTests.hpp"
 +
 +#include "vktDrawBaseClass.hpp"
 +#include "vkQueryUtil.hpp"
 +#include "vktTestGroupUtil.hpp"
 +
 +#include "deDefs.h"
 +#include "deRandom.hpp"
 +#include "deString.h"
 +
 +#include "tcuTestCase.hpp"
 +#include "tcuRGBA.hpp"
 +#include "tcuTextureUtil.hpp"
 +#include "tcuImageCompare.hpp"
 +#include "tcuStringTemplate.hpp"
 +
 +#include "rrRenderer.hpp"
 +
 +#include <string>
 +#include <sstream>
 +
 +namespace vkt
 +{
 +namespace Draw
 +{
 +namespace
 +{
 +using namespace vk;
 +using namespace std;
 +
 +struct DrawParams
 +{
 +      string  vertShader;
 +      string  fragShader;
 +      string  refVertShader;
 +      string  refFragShader;
 +};
 +
 +class DrawTestInstance : public TestInstance
 +{
 +public:
 +                                              DrawTestInstance        (Context& context, const DrawParams& data);
 +                                              ~DrawTestInstance       (void);
 +      tcu::TestStatus         iterate                         (void);
 +private:
 +      DrawParams                      m_data;
 +
 +      enum
 +      {
 +              WIDTH = 256,
 +              HEIGHT = 256
 +      };
 +};
 +
 +DrawTestInstance::DrawTestInstance (Context& context, const DrawParams& data)
 +      : vkt::TestInstance             (context)
 +      , m_data                                (data)
 +{
 +}
 +
 +DrawTestInstance::~DrawTestInstance (void)
 +{
 +}
 +
 +class DrawTestCase : public TestCase
 +{
 +      public:
 +                                                              DrawTestCase            (tcu::TestContext& context, const char* name, const char* desc, const DrawParams data);
 +                                                              ~DrawTestCase           (void);
 +      virtual void                            initPrograms            (SourceCollections& programCollection) const;
 +      virtual TestInstance*           createInstance          (Context& context) const;
 +
 +private:
 +      DrawParams                                      m_data;
 +};
 +
 +DrawTestCase::DrawTestCase (tcu::TestContext& context, const char* name, const char* desc, const DrawParams data)
 +      : vkt::TestCase (context, name, desc)
 +      , m_data                (data)
 +{
 +}
 +
 +DrawTestCase::~DrawTestCase   (void)
 +{
 +}
 +
 +void DrawTestCase::initPrograms (SourceCollections& programCollection) const
 +{
 +      const tcu::StringTemplate       vertShader      (string(
 +              "#version 430\n"
 +              "layout(location = 0) in vec4 in_position;\n"
 +              "layout(location = 1) in vec4 in_color;\n"
 +              "layout(location = 0) ${qualifier:opt} out vec4 out_color;\n"
 +              "out gl_PerVertex {\n"
 +              "    vec4  gl_Position;\n"
 +              "    float gl_PointSize;\n"
 +              "};\n"
 +              "void main() {\n"
 +              "    gl_PointSize = 1.0;\n"
 +              "    gl_Position  = in_position;\n"
 +              "    out_color    = in_color;\n"
 +              "}\n"));
 +
 +      const tcu::StringTemplate       fragShader      (string(
 +              "#version 430\n"
 +              "layout(location = 0) ${qualifier:opt} in vec4 in_color;\n"
 +              "layout(location = 0) out vec4 out_color;\n"
 +              "void main()\n"
 +              "{\n"
 +              "    out_color = in_color;\n"
 +              "}\n"));
 +
 +      map<string, string> empty;
 +      map<string, string> flat;
 +      flat["qualifier"] = "flat";
 +      map<string, string> noPerspective;
 +      noPerspective["qualifier"] = "noperspective";
 +
 +      programCollection.glslSources.add("vert") << glu::VertexSource(vertShader.specialize(empty));
 +      programCollection.glslSources.add("vertFlatColor") << glu::VertexSource(vertShader.specialize(flat));
 +      programCollection.glslSources.add("vertNoPerspective") << glu::VertexSource(vertShader.specialize(noPerspective));
 +      programCollection.glslSources.add("frag") << glu::FragmentSource(fragShader.specialize(empty));
 +      programCollection.glslSources.add("fragFlatColor") << glu::FragmentSource(fragShader.specialize(flat));
 +      programCollection.glslSources.add("fragNoPerspective") << glu::FragmentSource(fragShader.specialize(noPerspective));
 +}
 +
 +TestInstance* DrawTestCase::createInstance (Context& context) const
 +{
 +      return new DrawTestInstance(context, m_data);
 +}
 +
 +tcu::TestStatus DrawTestInstance::iterate (void)
 +{
 +      tcu::ConstPixelBufferAccess     frames[2];
 +      de::SharedPtr<Image>            colorTargetImages[2];
 +      const string                            vertShaderNames[2]      = { m_data.vertShader, m_data.refVertShader };
 +      const string                            fragShaderNames[2]      = { m_data.fragShader, m_data.refFragShader };
 +      tcu::TestLog                            &log                            = m_context.getTestContext().getLog();
 +
 +      // Run two iterations with shaders that have different interpolation decorations. Images should still match.
 +      for (deUint32 frameIdx = 0; frameIdx < DE_LENGTH_OF_ARRAY(frames); frameIdx++)
 +      {
 +              const DeviceInterface&                  vk                                              = m_context.getDeviceInterface();
 +              const VkDevice                                  device                                  = m_context.getDevice();
 +              const CmdPoolCreateInfo                 cmdPoolCreateInfo               (m_context.getUniversalQueueFamilyIndex());
 +              Move<VkCommandPool>                             cmdPool                                 = createCommandPool(vk, device, &cmdPoolCreateInfo);
 +              Move<VkCommandBuffer>                   cmdBuffer                               = allocateCommandBuffer(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
 +              const Unique<VkShaderModule>    vs                                              (createShaderModule(vk, device, m_context.getBinaryCollection().get(vertShaderNames[frameIdx].c_str()), 0));
 +              const Unique<VkShaderModule>    fs                                              (createShaderModule(vk, device, m_context.getBinaryCollection().get(fragShaderNames[frameIdx].c_str()), 0));
 +              de::SharedPtr<Buffer>                   vertexBuffer;
 +              Move<VkRenderPass>                              renderPass;
 +              Move<VkImageView>                               colorTargetView;
 +              Move<VkFramebuffer>                             framebuffer;
 +              Move<VkPipeline>                                pipeline;
 +
 +              // Create color buffer image.
 +              {
 +                      const VkExtent3D                                targetImageExtent               = { WIDTH, HEIGHT, 1 };
 +                      const ImageCreateInfo                   targetImageCreateInfo   (VK_IMAGE_TYPE_2D, VK_FORMAT_R8G8B8A8_UNORM, targetImageExtent, 1, 1, VK_SAMPLE_COUNT_1_BIT,
 +                              VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT);
-                       initialTransitionColor2DImage(vk, *cmdBuffer, colorTargetImages[frameIdx]->object(), VK_IMAGE_LAYOUT_GENERAL);
++                      colorTargetImages[frameIdx]                                                             = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
 +              }
 +
 +              // Create render pass and frame buffer.
 +              {
 +                      const ImageViewCreateInfo               colorTargetViewInfo             (colorTargetImages[frameIdx]->object(), VK_IMAGE_VIEW_TYPE_2D, VK_FORMAT_R8G8B8A8_UNORM);
 +                      colorTargetView = createImageView(vk, device, &colorTargetViewInfo);
 +
 +                      RenderPassCreateInfo                    renderPassCreateInfo;
 +                      renderPassCreateInfo.addAttachment(AttachmentDescription(VK_FORMAT_R8G8B8A8_UNORM,
 +                                                                                                                                       VK_SAMPLE_COUNT_1_BIT,
 +                                                                                                                                       VK_ATTACHMENT_LOAD_OP_LOAD,
 +                                                                                                                                       VK_ATTACHMENT_STORE_OP_STORE,
 +                                                                                                                                       VK_ATTACHMENT_LOAD_OP_DONT_CARE,
 +                                                                                                                                       VK_ATTACHMENT_STORE_OP_STORE,
 +                                                                                                                                       VK_IMAGE_LAYOUT_GENERAL,
 +                                                                                                                                       VK_IMAGE_LAYOUT_GENERAL));
 +
 +                      const VkAttachmentReference             colorAttachmentRef              = { 0, VK_IMAGE_LAYOUT_GENERAL };
 +                      renderPassCreateInfo.addSubpass(SubpassDescription(VK_PIPELINE_BIND_POINT_GRAPHICS,
 +                                                                                                                         0,
 +                                                                                                                         0,
 +                                                                                                                         DE_NULL,
 +                                                                                                                         1,
 +                                                                                                                         &colorAttachmentRef,
 +                                                                                                                         DE_NULL,
 +                                                                                                                         AttachmentReference(),
 +                                                                                                                         0,
 +                                                                                                                         DE_NULL));
 +
 +                      vector<VkImageView>                             colorAttachments                (1);
 +
 +                      renderPass                      = createRenderPass(vk, device, &renderPassCreateInfo);
 +                      colorAttachments[0]     = *colorTargetView;
 +
 +                      const FramebufferCreateInfo             framebufferCreateInfo   (*renderPass, colorAttachments, WIDTH, HEIGHT, 1);
 +
 +                      framebuffer     = createFramebuffer(vk, device, &framebufferCreateInfo);
 +              }
 +
 +              // Create vertex buffer.
 +              {
 +                      const PositionColorVertex       vertices[]      =
 +                      {
 +                              PositionColorVertex(
 +                                      tcu::Vec4(-0.8f, -0.7f, 1.0f, 1.0f),    // Coord
 +                                      tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f)),             // Color
 +
 +                              PositionColorVertex(
 +                                      tcu::Vec4(0.0f, 0.4f, 0.5f, 0.5f),              // Coord
 +                                      tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f)),             // Color
 +
 +                              PositionColorVertex(
 +                                      tcu::Vec4(0.8f, -0.5f, 1.0f, 1.0f),             // Coord
 +                                      tcu::Vec4(0.0f, 0.0f, 1.0f, 1.0f))              // Color
 +                      };
 +
 +                      const VkDeviceSize                      dataSize        = DE_LENGTH_OF_ARRAY(vertices) * sizeof(PositionColorVertex);
 +                      vertexBuffer                                                    = Buffer::createAndAlloc(vk, device, BufferCreateInfo(dataSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), m_context.getDefaultAllocator(), MemoryRequirement::HostVisible);
 +                      deUint8*                                        ptr                     = reinterpret_cast<deUint8*>(vertexBuffer->getBoundMemory().getHostPtr());
 +
 +                      deMemcpy(ptr, vertices, static_cast<size_t>(dataSize));
 +                      flushMappedMemoryRange(vk, device, vertexBuffer->getBoundMemory().getMemory(), vertexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
 +              }
 +
 +              // Create pipeline
 +              {
 +                      const PipelineLayoutCreateInfo  pipelineLayoutCreateInfo;
 +                      Move<VkPipelineLayout>                  pipelineLayout = createPipelineLayout(vk, device, &pipelineLayoutCreateInfo);
 +                      const PipelineCreateInfo::ColorBlendState::Attachment vkCbAttachmentState;
 +
 +                      VkViewport viewport;
 +                      viewport.x                              = 0;
 +                      viewport.y                              = 0;
 +                      viewport.width                  = static_cast<float>(WIDTH);
 +                      viewport.height                 = static_cast<float>(HEIGHT);
 +                      viewport.minDepth               = 0.0f;
 +                      viewport.maxDepth               = 1.0f;
 +
 +                      VkRect2D scissor;
 +                      scissor.offset.x                = 0;
 +                      scissor.offset.y                = 0;
 +                      scissor.extent.width    = WIDTH;
 +                      scissor.extent.height   = HEIGHT;
 +
 +                      const VkVertexInputBindingDescription vertexInputBindingDescription = { 0, (deUint32)sizeof(tcu::Vec4) * 2, VK_VERTEX_INPUT_RATE_VERTEX };
 +
 +                      const VkVertexInputAttributeDescription vertexInputAttributeDescriptions[2] =
 +                      {
 +                              { 0u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, 0u },
 +                              { 1u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, (deUint32)(sizeof(float)* 4) }
 +                      };
 +
 +                      PipelineCreateInfo::VertexInputState vertexInputState   = PipelineCreateInfo::VertexInputState(1, &vertexInputBindingDescription, 2, vertexInputAttributeDescriptions);
 +
 +                      PipelineCreateInfo pipelineCreateInfo(*pipelineLayout, *renderPass, 0, 0);
 +                      pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*vs, "main", VK_SHADER_STAGE_VERTEX_BIT));
 +                      pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*fs, "main", VK_SHADER_STAGE_FRAGMENT_BIT));
 +                      pipelineCreateInfo.addState(PipelineCreateInfo::VertexInputState(vertexInputState));
 +                      pipelineCreateInfo.addState(PipelineCreateInfo::InputAssemblerState(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST));
 +                      pipelineCreateInfo.addState(PipelineCreateInfo::ColorBlendState(1, &vkCbAttachmentState));
 +                      pipelineCreateInfo.addState(PipelineCreateInfo::ViewportState(1, vector<VkViewport>(1, viewport), vector<VkRect2D>(1, scissor)));
 +                      pipelineCreateInfo.addState(PipelineCreateInfo::DepthStencilState());
 +                      pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState());
 +                      pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState());
 +
 +                      pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
 +              }
 +
 +              // Queue draw and read results.
 +              {
 +                      const VkQueue                           queue                           = m_context.getUniversalQueue();
 +                      const VkClearColorValue         clearColor                      = { { 0.0f, 0.0f, 0.0f, 1.0f } };
 +                      const CmdBufferBeginInfo        beginInfo;
 +                      const ImageSubresourceRange subresourceRange    (VK_IMAGE_ASPECT_COLOR_BIT);
 +                      const VkMemoryBarrier           memBarrier                      =
 +                      {
 +                              VK_STRUCTURE_TYPE_MEMORY_BARRIER,
 +                              DE_NULL,
 +                              VK_ACCESS_TRANSFER_WRITE_BIT,
 +                              VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
 +                      };
 +                      const VkRect2D                          renderArea                      = { { 0, 0 }, { WIDTH, HEIGHT } };
 +                      const VkDeviceSize                      vertexBufferOffset      = 0;
 +                      const VkBuffer                          buffer                          = vertexBuffer->object();
 +                      const VkOffset3D                        zeroOffset                      = { 0, 0, 0 };
 +                      const RenderPassBeginInfo       renderPassBegin         (*renderPass, *framebuffer, renderArea);
 +
 +                      vk.beginCommandBuffer(*cmdBuffer, &beginInfo);
 +
++                      initialTransitionColor2DImage(vk, *cmdBuffer, colorTargetImages[frameIdx]->object(), VK_IMAGE_LAYOUT_GENERAL,
++                                                                                vk::VK_ACCESS_TRANSFER_WRITE_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT);
 +
 +                      vk.cmdClearColorImage(*cmdBuffer, colorTargetImages[frameIdx]->object(),
 +                              VK_IMAGE_LAYOUT_GENERAL, &clearColor, 1, &subresourceRange);
 +
 +                      vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT,
 +                              VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
 +                              0, 1, &memBarrier, 0, DE_NULL, 0, DE_NULL);
 +
 +                      vk.cmdBeginRenderPass(*cmdBuffer, &renderPassBegin, VK_SUBPASS_CONTENTS_INLINE);
 +                      vk.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &buffer, &vertexBufferOffset);
 +                      vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
 +                      vk.cmdDraw(*cmdBuffer, 3u, 1u, 0u, 0u);
 +                      vk.cmdEndRenderPass(*cmdBuffer);
 +                      vk.endCommandBuffer(*cmdBuffer);
 +
 +                      VkSubmitInfo    submitInfo =
 +                      {
 +                              VK_STRUCTURE_TYPE_SUBMIT_INFO,                  // VkStructureType                      sType;
 +                              DE_NULL,                                                                // const void*                          pNext;
 +                              0,                                                                              // deUint32                                     waitSemaphoreCount;
 +                              DE_NULL,                                                                // const VkSemaphore*           pWaitSemaphores;
 +                              (const VkPipelineStageFlags*)DE_NULL,
 +                              1,                                                                              // deUint32                                     commandBufferCount;
 +                              &cmdBuffer.get(),                                               // const VkCommandBuffer*       pCommandBuffers;
 +                              0,                                                                              // deUint32                                     signalSemaphoreCount;
 +                              DE_NULL                                                                 // const VkSemaphore*           pSignalSemaphores;
 +                      };
 +
 +                      VK_CHECK(vk.queueSubmit(queue, 1, &submitInfo, DE_NULL));
 +                      VK_CHECK(vk.queueWaitIdle(queue));
 +
 +                      frames[frameIdx] = colorTargetImages[frameIdx]->readSurface(queue, m_context.getDefaultAllocator(), VK_IMAGE_LAYOUT_GENERAL, zeroOffset, WIDTH, HEIGHT, VK_IMAGE_ASPECT_COLOR_BIT);
 +              }
 +      }
 +
 +      qpTestResult res = QP_TEST_RESULT_PASS;
 +
 +      if (!tcu::intThresholdCompare(log, "Result", "Image comparison result", frames[0], frames[1], tcu::UVec4(0), tcu::COMPARE_LOG_RESULT))
 +              res = QP_TEST_RESULT_FAIL;
 +
 +      return tcu::TestStatus(res, qpGetTestResultName(res));
 +}
 +
 +void createTests (tcu::TestCaseGroup* testGroup)
 +{
 +      tcu::TestContext&       testCtx = testGroup->getTestContext();
 +      const DrawParams        paramsFlat0     = { "vert", "fragFlatColor", "vertFlatColor", "fragFlatColor" };
 +      const DrawParams        paramsFlat1     = { "vertFlatColor", "frag", "vert", "frag" };
 +
 +      const DrawParams        paramsNoPerspective0    = { "vert", "fragNoPerspective", "vertNoPerspective", "fragNoPerspective" };
 +      const DrawParams        paramsNoPerspective1    = { "vertNoPerspective", "frag", "vert", "frag" };
 +
 +      testGroup->addChild(new DrawTestCase(testCtx, "flat_0", "Mismatching flat interpolation testcase 0.", paramsFlat0));
 +      testGroup->addChild(new DrawTestCase(testCtx, "flat_1", "Mismatching flat interpolation testcase 1.", paramsFlat1));
 +
 +      testGroup->addChild(new DrawTestCase(testCtx, "noperspective_0", "Mismatching noperspective interpolation testcase 0.", paramsNoPerspective0));
 +      testGroup->addChild(new DrawTestCase(testCtx, "noperspective_1", "Mismatching noperspective interpolation testcase 1.", paramsNoPerspective1));
 +}
 +
 +}     // anonymous
 +
 +tcu::TestCaseGroup*   createDifferingInterpolationTests (tcu::TestContext& testCtx)
 +{
 +      return createTestGroup(testCtx, "differing_interpolation", "Tests for mismatched interpolation decorations.", createTests);
 +}
 +
 +}     // Draw
 +}     // vkt
@@@ -40,17 -42,15 +42,19 @@@ tcu::TestCaseGroup* createTests (tcu::T
  {
        de::MovePtr<tcu::TestCaseGroup> sparseTests (new tcu::TestCaseGroup(testCtx, "sparse_resources", "Sparse Resources Tests"));
  
 -      sparseTests->addChild(createSparseBufferTests                                   (testCtx));
 -      sparseTests->addChild(createImageSparseBindingTests                             (testCtx));
 -      sparseTests->addChild(createImageSparseResidencyTests                   (testCtx));
 -      sparseTests->addChild(createImageAlignedMipSizeTests                    (testCtx));
 -      sparseTests->addChild(createImageBlockShapesTests                               (testCtx));
 -      sparseTests->addChild(createMipmapSparseResidencyTests                  (testCtx));
 -      sparseTests->addChild(createImageSparseMemoryAliasingTests              (testCtx));
 -      sparseTests->addChild(createSparseResourcesShaderIntrinsicsTests(testCtx));
 -      sparseTests->addChild(createQueueBindSparseTests                                (testCtx));
 +      sparseTests->addChild(createSparseBufferTests                                                   (testCtx));
 +      sparseTests->addChild(createImageSparseBindingTests                                             (testCtx));
 +      sparseTests->addChild(createDeviceGroupImageSparseBindingTests                  (testCtx));
 +      sparseTests->addChild(createImageSparseResidencyTests                                   (testCtx));
++      sparseTests->addChild(createImageAlignedMipSizeTests                                    (testCtx));
++      sparseTests->addChild(createImageBlockShapesTests                                               (testCtx));
 +      sparseTests->addChild(createDeviceGroupImageSparseResidencyTests                (testCtx));
 +      sparseTests->addChild(createMipmapSparseResidencyTests                                  (testCtx));
 +      sparseTests->addChild(createDeviceGroupMipmapSparseResidencyTests               (testCtx));
 +      sparseTests->addChild(createImageSparseMemoryAliasingTests                              (testCtx));
 +      sparseTests->addChild(createDeviceGroupImageSparseMemoryAliasingTests   (testCtx));
 +      sparseTests->addChild(createSparseResourcesShaderIntrinsicsTests                (testCtx));
 +      sparseTests->addChild(createQueueBindSparseTests                                                (testCtx));
  
        return sparseTests.release();
  }
@@@ -39,30 -39,9 +39,31 @@@ enum ComputeTestFeature
        COMPUTE_TEST_USES_INT16,
        COMPUTE_TEST_USES_INT64,
        COMPUTE_TEST_USES_INT16_INT64,
+       COMPUTE_TEST_USES_FLOAT64
  };
  
 +/*--------------------------------------------------------------------*//*!
 + * \brief Test instance for compute pipeline
 + *
 + * The compute shader is specified in the format of SPIR-V assembly, which
 + * is allowed to access MAX_NUM_INPUT_BUFFERS input storage buffers and
 + * MAX_NUM_OUTPUT_BUFFERS output storage buffers maximally. The shader
 + * source and input/output data are given in a ComputeShaderSpec object.
 + *
 + * This instance runs the given compute shader by feeding the data from input
 + * buffers and compares the data in the output buffers with the expected.
 + *//*--------------------------------------------------------------------*/
 +class SpvAsmComputeShaderInstance : public TestInstance
 +{
 +public:
 +                                                                              SpvAsmComputeShaderInstance     (Context& ctx, const ComputeShaderSpec& spec, const ComputeTestFeatures features);
 +      tcu::TestStatus                                         iterate                                         (void);
 +
 +private:
 +      const ComputeShaderSpec&                        m_shaderSpec;
 +      const ComputeTestFeatures                       m_features;
 +};
 +
  class SpvAsmComputeShaderCase : public TestCase
  {
  public:
@@@ -8791,7 -8730,7 +8929,8 @@@ tcu::TestCaseGroup* createInstructionTe
        de::MovePtr<tcu::TestCaseGroup> computeTests            (new tcu::TestCaseGroup(testCtx, "compute", "Compute Instructions with special opcodes/operands"));
        de::MovePtr<tcu::TestCaseGroup> graphicsTests           (new tcu::TestCaseGroup(testCtx, "graphics", "Graphics Instructions with special opcodes/operands"));
  
 +      computeTests->addChild(createSpivVersionCheckTests(testCtx, testComputePipeline));
+       computeTests->addChild(createLocalSizeGroup(testCtx));
        computeTests->addChild(createOpNopGroup(testCtx));
        computeTests->addChild(createOpFUnordGroup(testCtx));
        computeTests->addChild(createOpAtomicGroup(testCtx, false));
index 64f0707,d1bd308..f1f3c5c
mode 100755,100644..100755
@@@ -172440,13 -168438,19 +172884,23 @@@ dEQP-VK.binding_model.shader_access.sec
  dEQP-VK.binding_model.shader_access.secondary_cmd_buf.with_push_template.storage_buffer.vertex_fragment.multiple_arbitrary_descriptors.offset_view_nonzero
  dEQP-VK.binding_model.shader_access.secondary_cmd_buf.with_push_template.storage_buffer.vertex_fragment.descriptor_array.offset_view_zero
  dEQP-VK.binding_model.shader_access.secondary_cmd_buf.with_push_template.storage_buffer.vertex_fragment.descriptor_array.offset_view_nonzero
- dEQP-VK.spirv_assembly.instruction.compute.opnop.literal_localsize
- dEQP-VK.spirv_assembly.instruction.compute.opnop.literal_and_specid_localsize
- dEQP-VK.spirv_assembly.instruction.compute.opnop.specid_localsize
 +dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_0_compute
 +dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_1_compute
 +dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_2_compute
 +dEQP-VK.spirv_assembly.instruction.compute.spirv_version.1_3_compute
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize_x
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize_x
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize_x
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize_y
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize_y
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize_y
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_localsize_z
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.literal_and_specid_localsize_z
+ dEQP-VK.spirv_assembly.instruction.compute.localsize.specid_localsize_z
+ dEQP-VK.spirv_assembly.instruction.compute.opnop.all
  dEQP-VK.spirv_assembly.instruction.compute.opatomic.iadd
  dEQP-VK.spirv_assembly.instruction.compute.opatomic.isub
  dEQP-VK.spirv_assembly.instruction.compute.opatomic.iinc
@@@ -209690,14 -205523,10 +210219,14 @@@ dEQP-VK.draw.negative_viewport_height.f
  dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltazero
  dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltasmall
  dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltaone
- dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltalarge
+ dEQP-VK.draw.inverted_depth_ranges.depthclamp_depth_range_unrestricted
  dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltasmall
  dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltaone
- dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltalarge
+ dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_depth_range_unrestricted
 +dEQP-VK.draw.differing_interpolation.flat_0
 +dEQP-VK.draw.differing_interpolation.flat_1
 +dEQP-VK.draw.differing_interpolation.noperspective_0
 +dEQP-VK.draw.differing_interpolation.noperspective_1
  dEQP-VK.compute.basic.empty_shader
  dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation
  dEQP-VK.compute.basic.ubo_to_ssbo_single_group
@@@ -245771,141 -241423,276 +246300,411 @@@ dEQP-VK.sparse_resources.image_sparse_r
  dEQP-VK.sparse_resources.image_sparse_residency.3d.rgba8ui.512_256_16
  dEQP-VK.sparse_resources.image_sparse_residency.3d.rgba8ui.1024_128_8
  dEQP-VK.sparse_resources.image_sparse_residency.3d.rgba8ui.11_137_3
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d.rgba8ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.2d_array.rgba8ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube.rgba8ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.cube_array.rgba8ui
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.r32i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.r16i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.r8i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rg32i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rg16i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rg8i
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rgba32ui
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rgba16ui
+ dEQP-VK.sparse_resources.aligned_mip_size.3d.rgba8ui
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d.rgba8ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.2d_array.rgba8ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube.rgba8ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.cube_array.rgba8ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.r8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg32i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg16i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rg8i.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba32ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba16ui.samples_16
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_1
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_2
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_4
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_8
+ dEQP-VK.sparse_resources.image_block_shapes.3d.rgba8ui.samples_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r32i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r32i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r32i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r16i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r16i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r16i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r8i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r8i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.r8i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg32i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg32i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg32i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg16i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg16i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg16i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg8i.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg8i.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rg8i.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba32ui.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba32ui.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba32ui.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba16ui.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba16ui.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba16ui.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba8ui.512_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba8ui.1024_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d.rgba8ui.11_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r32i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r32i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r32i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r16i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r16i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r16i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r8i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r8i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.r8i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg32i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg32i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg32i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg16i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg16i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg16i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg8i.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg8i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rg8i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba32ui.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba32ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba32ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba16ui.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba16ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba16ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba8ui.512_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba8ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.2d_array.rgba8ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r32i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r32i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r32i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r16i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r16i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r16i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r8i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r8i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.r8i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg32i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg32i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg32i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg16i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg16i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg16i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg8i.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg8i.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rg8i.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba32ui.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba32ui.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba32ui.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba16ui.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba16ui.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba16ui.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba8ui.256_256_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba8ui.128_128_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube.rgba8ui.137_137_1
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r32i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r32i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r32i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r16i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r16i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r16i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r8i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r8i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.r8i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg32i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg32i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg32i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg16i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg16i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg16i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg8i.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg8i.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rg8i.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba32ui.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba32ui.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba32ui.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba16ui.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba16ui.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba16ui.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba8ui.256_256_6
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba8ui.128_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.cube_array.rgba8ui.137_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r32i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r32i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r32i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r16i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r16i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r16i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r8i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r8i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.r8i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg32i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg32i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg32i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg16i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg16i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg16i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg8i.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg8i.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rg8i.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba32ui.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba32ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba32ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba16ui.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba16ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba16ui.11_137_3
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba8ui.512_256_16
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba8ui.1024_128_8
 +dEQP-VK.sparse_resources.device_group_image_sparse_residency.3d.rgba8ui.11_137_3
  dEQP-VK.sparse_resources.mipmap_sparse_residency.2d.r32i.512_256_1
  dEQP-VK.sparse_resources.mipmap_sparse_residency.2d.r32i.1024_128_1
  dEQP-VK.sparse_resources.mipmap_sparse_residency.2d.r32i.11_137_1