Add testing for sparse D/S/DS images.
authorAri Suonpaa <ari.suonpaa@siru.fi>
Fri, 1 Sep 2017 10:40:33 +0000 (13:40 +0300)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Wed, 15 Nov 2017 14:20:37 +0000 (09:20 -0500)
Add sparse binding support for shadow texture tests by supporting sparse
binding in texture test util class. Removed unnecessary image aspect
check which prevented shadow sampler testing with sparse images.

Affects:

dEQP-VK.glsl.texture_functions.texture.sparse*shadow*
dEQP-VK.glsl.texture_gather.*depth32f*sparse*
dEQP-VK.texture.shadow.*sparse*

Components: Vulkan

VK-GL-CTS issue: 79

Change-Id: I265f09817493d96b91450f71822b00434bcf6cf3

android/cts/master/vk-master.txt
external/vulkancts/modules/vulkan/pipeline/vktPipelineImageUtil.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineImageUtil.hpp
external/vulkancts/modules/vulkan/shaderrender/vktShaderRender.cpp
external/vulkancts/modules/vulkan/texture/vktTextureShadowTests.cpp
external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.cpp
external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.hpp
external/vulkancts/mustpass/1.0.3/vk-default.txt

index b9435e2..41b7ca2 100644 (file)
@@ -245659,869 +245659,1733 @@ dEQP-VK.texture.mipmap.3d.max_level.linear_nearest
 dEQP-VK.texture.mipmap.3d.max_level.nearest_linear
 dEQP-VK.texture.mipmap.3d.max_level.linear_linear
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.always_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.never_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.always_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.never_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.filtering_anisotropy.basic.anisotropy_2.mag_nearest_min_nearest
 dEQP-VK.texture.filtering_anisotropy.basic.anisotropy_2.mag_linear_min_nearest
 dEQP-VK.texture.filtering_anisotropy.basic.anisotropy_2.mag_nearest_min_linear
index 1ba7327..e30d28c 100644 (file)
@@ -30,6 +30,7 @@
 #include "tcuTextureUtil.hpp"
 #include "tcuAstcUtil.hpp"
 #include "deRandom.hpp"
+#include "deSharedPtr.hpp"
 
 namespace vkt
 {
@@ -347,6 +348,28 @@ VkImageAspectFlags getImageAspectFlags (const tcu::TextureFormat textureFormat)
        return imageAspectFlags;
 }
 
+VkExtent3D mipLevelExtents (const VkExtent3D& baseExtents, const deUint32 mipLevel)
+{
+       VkExtent3D result;
+
+       result.width    = std::max(baseExtents.width >> mipLevel, 1u);
+       result.height   = std::max(baseExtents.height >> mipLevel, 1u);
+       result.depth    = std::max(baseExtents.depth >> mipLevel, 1u);
+
+       return result;
+}
+
+tcu::UVec3 alignedDivide (const VkExtent3D& extent, const VkExtent3D& divisor)
+{
+       tcu::UVec3 result;
+
+       result.x() = extent.width  / divisor.width  + ((extent.width  % divisor.width != 0)  ? 1u : 0u);
+       result.y() = extent.height / divisor.height + ((extent.height % divisor.height != 0) ? 1u : 0u);
+       result.z() = extent.depth  / divisor.depth  + ((extent.depth  % divisor.depth != 0)  ? 1u : 0u);
+
+       return result;
+}
+
 } // anonymous
 
 void uploadTestTextureInternal (const DeviceInterface&                 vk,
@@ -516,6 +539,405 @@ void uploadTestTextureInternal (const DeviceInterface&                    vk,
        VK_CHECK(vk.waitForFences(device, 1, &fence.get(), true, ~(0ull) /* infinity */));
 }
 
+void uploadTestTextureInternalSparse (const DeviceInterface&                                   vk,
+                                                                         VkDevice                                                                      device,
+                                                                         const VkPhysicalDevice                                        physicalDevice,
+                                                                         const InstanceInterface&                                      instance,
+                                                                         const VkImageCreateInfo&                                      imageCreateInfo,
+                                                                         VkQueue                                                                       queue,
+                                                                         deUint32                                                                      queueFamilyIndex,
+                                                                         Allocator&                                                            allocator,
+                                                                         std::vector<de::SharedPtr<Allocation> >&      allocations,
+                                                                         const TestTexture&                                            srcTexture,
+                                                                         const TestTexture*                                            srcStencilTexture,
+                                                                         tcu::TextureFormat                                            format,
+                                                                         VkImage                                                                       destImage)
+{
+       deUint32                                                                bufferSize                              = (srcTexture.isCompressed()) ? srcTexture.getCompressedSize(): srcTexture.getSize();
+       const VkImageAspectFlags                                imageAspectFlags                = getImageAspectFlags(format);
+       deUint32                                                                stencilOffset                   = 0u;
+       const Unique<VkSemaphore>                               imageMemoryBindSemaphore(createSemaphore(vk, device));
+
+       // Stencil-only texture should be provided if (and only if) the image has a combined DS format
+       DE_ASSERT((tcu::hasDepthComponent(format.order) && tcu::hasStencilComponent(format.order)) == (srcStencilTexture != DE_NULL));
+
+       if (srcStencilTexture != DE_NULL)
+       {
+               stencilOffset   = static_cast<deUint32>(deAlign32(static_cast<deInt32>(bufferSize), 4));
+               bufferSize              = stencilOffset + srcStencilTexture->getSize();
+       }
+
+       {
+               const VkPhysicalDeviceProperties                deviceProperties                = getPhysicalDeviceProperties(instance, physicalDevice);
+               const VkPhysicalDeviceMemoryProperties  deviceMemoryProperties  = getPhysicalDeviceMemoryProperties(instance, physicalDevice);
+               deUint32 sparseMemoryReqCount = 0;
+
+               vk.getImageSparseMemoryRequirements(device, destImage, &sparseMemoryReqCount, DE_NULL);
+
+               DE_ASSERT(sparseMemoryReqCount != 0);
+
+               std::vector<VkSparseImageMemoryRequirements> sparseImageMemoryRequirements;
+               sparseImageMemoryRequirements.resize(sparseMemoryReqCount);
+
+               vk.getImageSparseMemoryRequirements(device, destImage, &sparseMemoryReqCount, &sparseImageMemoryRequirements[0]);
+
+               const deUint32 noMatchFound = ~((deUint32)0);
+
+               deUint32 aspectIndex = noMatchFound;
+               for (deUint32 memoryReqNdx = 0; memoryReqNdx < sparseMemoryReqCount; ++memoryReqNdx)
+               {
+                       if (sparseImageMemoryRequirements[memoryReqNdx].formatProperties.aspectMask == imageAspectFlags)
+                       {
+                               aspectIndex = memoryReqNdx;
+                               break;
+                       }
+               }
+
+               deUint32 metadataAspectIndex = noMatchFound;
+               for (deUint32 memoryReqNdx = 0; memoryReqNdx < sparseMemoryReqCount; ++memoryReqNdx)
+               {
+                       if (sparseImageMemoryRequirements[memoryReqNdx].formatProperties.aspectMask & VK_IMAGE_ASPECT_METADATA_BIT)
+                       {
+                               metadataAspectIndex = memoryReqNdx;
+                               break;
+                       }
+               }
+
+               if (aspectIndex == noMatchFound)
+                       TCU_THROW(NotSupportedError, "Required image aspect not supported.");
+
+               const VkMemoryRequirements      memoryRequirements      = getImageMemoryRequirements(vk, device, destImage);
+
+               deUint32 memoryType = noMatchFound;
+               for (deUint32 memoryTypeNdx = 0; memoryTypeNdx < deviceMemoryProperties.memoryTypeCount; ++memoryTypeNdx)
+               {
+                       if ((memoryRequirements.memoryTypeBits & (1u << memoryTypeNdx)) != 0 &&
+                               MemoryRequirement::Any.matchesHeap(deviceMemoryProperties.memoryTypes[memoryTypeNdx].propertyFlags))
+                       {
+                               memoryType = memoryTypeNdx;
+                               break;
+                       }
+               }
+
+               if (memoryType == noMatchFound)
+                       TCU_THROW(NotSupportedError, "No matching memory type found.");
+
+               if (memoryRequirements.size > deviceProperties.limits.sparseAddressSpaceSize)
+                       TCU_THROW(NotSupportedError, "Required memory size for sparse resource exceeds device limits.");
+
+               // Check if the image format supports sparse operations
+               const std::vector<VkSparseImageFormatProperties> sparseImageFormatPropVec =
+                       getPhysicalDeviceSparseImageFormatProperties(instance, physicalDevice, imageCreateInfo.format, imageCreateInfo.imageType, imageCreateInfo.samples, imageCreateInfo.usage, imageCreateInfo.tiling);
+
+               if (sparseImageFormatPropVec.size() == 0)
+                       TCU_THROW(NotSupportedError, "The image format does not support sparse operations.");
+
+               const VkSparseImageMemoryRequirements           aspectRequirements      = sparseImageMemoryRequirements[aspectIndex];
+               const VkExtent3D                                                        imageGranularity        = aspectRequirements.formatProperties.imageGranularity;
+
+               std::vector<VkSparseImageMemoryBind>            imageResidencyMemoryBinds;
+               std::vector<VkSparseMemoryBind>                         imageMipTailMemoryBinds;
+
+               for (deUint32 layerNdx = 0; layerNdx < imageCreateInfo.arrayLayers; ++layerNdx)
+               {
+                       for (deUint32 mipLevelNdx = 0; mipLevelNdx < aspectRequirements.imageMipTailFirstLod; ++mipLevelNdx)
+                       {
+                               const VkExtent3D        mipExtent               = mipLevelExtents(imageCreateInfo.extent, mipLevelNdx);
+                               const tcu::UVec3        numSparseBinds  = alignedDivide(mipExtent, imageGranularity);
+                               const tcu::UVec3        lastBlockExtent = tcu::UVec3(mipExtent.width  % imageGranularity.width  ? mipExtent.width  % imageGranularity.width  : imageGranularity.width,
+                                                                                                                                mipExtent.height % imageGranularity.height ? mipExtent.height % imageGranularity.height : imageGranularity.height,
+                                                                                                                                mipExtent.depth  % imageGranularity.depth  ? mipExtent.depth  % imageGranularity.depth  : imageGranularity.depth );
+
+                               for (deUint32 z = 0; z < numSparseBinds.z(); ++z)
+                               for (deUint32 y = 0; y < numSparseBinds.y(); ++y)
+                               for (deUint32 x = 0; x < numSparseBinds.x(); ++x)
+                               {
+                                       const VkMemoryRequirements allocRequirements =
+                                       {
+                                               // 28.7.5 alignment shows the block size in bytes
+                                               memoryRequirements.alignment,           // VkDeviceSize size;
+                                               memoryRequirements.alignment,           // VkDeviceSize alignment;
+                                               memoryRequirements.memoryTypeBits,      // uint32_t             memoryTypeBits;
+                                       };
+
+                                       de::SharedPtr<Allocation> allocation(allocator.allocate(allocRequirements, MemoryRequirement::Any).release());
+                                       allocations.push_back(allocation);
+
+                                       VkOffset3D offset;
+                                       offset.x = x*imageGranularity.width;
+                                       offset.y = y*imageGranularity.height;
+                                       offset.z = z*imageGranularity.depth;
+
+                                       VkExtent3D extent;
+                                       extent.width    = (x == numSparseBinds.x() - 1) ? lastBlockExtent.x() : imageGranularity.width;
+                                       extent.height   = (y == numSparseBinds.y() - 1) ? lastBlockExtent.y() : imageGranularity.height;
+                                       extent.depth    = (z == numSparseBinds.z() - 1) ? lastBlockExtent.z() : imageGranularity.depth;
+
+                                       const VkSparseImageMemoryBind imageMemoryBind =
+                                       {
+                                               {
+                                                       imageAspectFlags,       // VkImageAspectFlags   aspectMask;
+                                                       mipLevelNdx,            // uint32_t                             mipLevel;
+                                                       layerNdx,                       // uint32_t                             arrayLayer;
+                                               },                                                      // VkImageSubresource           subresource;
+                                               offset,                                         // VkOffset3D                           offset;
+                                               extent,                                         // VkExtent3D                           extent;
+                                               allocation->getMemory(),        // VkDeviceMemory                       memory;
+                                               allocation->getOffset(),        // VkDeviceSize                         memoryOffset;
+                                               0u,                                                     // VkSparseMemoryBindFlags      flags;
+                                       };
+
+                                       imageResidencyMemoryBinds.push_back(imageMemoryBind);
+                               }
+                       }
+
+                       // Handle MIP tail. There are two cases to consider here:
+                       //
+                       // 1) VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT is requested by the driver: each layer needs a separate tail.
+                       // 2) otherwise:                                                            only one tail is needed.
+                       {
+                               if (imageMipTailMemoryBinds.size() == 0 || (aspectRequirements.formatProperties.flags & VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT) == 0)
+                               {
+                                       const VkMemoryRequirements allocRequirements =
+                                       {
+                                               aspectRequirements.imageMipTailSize,    // VkDeviceSize size;
+                                               memoryRequirements.alignment,                   // VkDeviceSize alignment;
+                                               memoryRequirements.memoryTypeBits,              // uint32_t             memoryTypeBits;
+                                       };
+
+                                       const de::SharedPtr<Allocation> allocation(allocator.allocate(allocRequirements, MemoryRequirement::Any).release());
+
+                                       const VkSparseMemoryBind imageMipTailMemoryBind =
+                                       {
+                                               aspectRequirements.imageMipTailOffset + layerNdx * aspectRequirements.imageMipTailStride,       // VkDeviceSize                                 resourceOffset;
+                                               aspectRequirements.imageMipTailSize,                                                                                                            // VkDeviceSize                                 size;
+                                               allocation->getMemory(),                                                                                                                                        // VkDeviceMemory                               memory;
+                                               allocation->getOffset(),                                                                                                                                        // VkDeviceSize                                 memoryOffset;
+                                               0u,                                                                                                                                                                                     // VkSparseMemoryBindFlags              flags;
+                                       };
+
+                                       allocations.push_back(allocation);
+
+                                       imageMipTailMemoryBinds.push_back(imageMipTailMemoryBind);
+                               }
+
+                               // Metadata
+                               if (metadataAspectIndex != noMatchFound)
+                               {
+                                       const VkSparseImageMemoryRequirements   metadataAspectRequirements = sparseImageMemoryRequirements[metadataAspectIndex];
+
+                                       if (imageMipTailMemoryBinds.size() == 1 || (metadataAspectRequirements.formatProperties.flags & VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT) == 0)
+                                       {
+                                               const VkMemoryRequirements metadataAllocRequirements =
+                                               {
+                                                       metadataAspectRequirements.imageMipTailSize,    // VkDeviceSize size;
+                                                       memoryRequirements.alignment,                                   // VkDeviceSize alignment;
+                                                       memoryRequirements.memoryTypeBits,                              // uint32_t             memoryTypeBits;
+                                               };
+                                               const de::SharedPtr<Allocation> metadataAllocation(allocator.allocate(metadataAllocRequirements, MemoryRequirement::Any).release());
+
+                                               const VkSparseMemoryBind metadataMipTailMemoryBind =
+                                               {
+                                                       metadataAspectRequirements.imageMipTailOffset +
+                                                       layerNdx * metadataAspectRequirements.imageMipTailStride,                       // VkDeviceSize                                 resourceOffset;
+                                                       metadataAspectRequirements.imageMipTailSize,                                            // VkDeviceSize                                 size;
+                                                       metadataAllocation->getMemory(),                                                                        // VkDeviceMemory                               memory;
+                                                       metadataAllocation->getOffset(),                                                                        // VkDeviceSize                                 memoryOffset;
+                                                       VK_SPARSE_MEMORY_BIND_METADATA_BIT                                                                      // VkSparseMemoryBindFlags              flags;
+                                               };
+
+                                               allocations.push_back(metadataAllocation);
+
+                                               imageMipTailMemoryBinds.push_back(metadataMipTailMemoryBind);
+                                       }
+                               }
+                       }
+               }
+
+               VkBindSparseInfo bindSparseInfo =
+               {
+                       VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,                     //VkStructureType                                                       sType;
+                       DE_NULL,                                                                        //const void*                                                           pNext;
+                       0u,                                                                                     //deUint32                                                                      waitSemaphoreCount;
+                       DE_NULL,                                                                        //const VkSemaphore*                                            pWaitSemaphores;
+                       0u,                                                                                     //deUint32                                                                      bufferBindCount;
+                       DE_NULL,                                                                        //const VkSparseBufferMemoryBindInfo*           pBufferBinds;
+                       0u,                                                                                     //deUint32                                                                      imageOpaqueBindCount;
+                       DE_NULL,                                                                        //const VkSparseImageOpaqueMemoryBindInfo*      pImageOpaqueBinds;
+                       0u,                                                                                     //deUint32                                                                      imageBindCount;
+                       DE_NULL,                                                                        //const VkSparseImageMemoryBindInfo*            pImageBinds;
+                       1u,                                                                                     //deUint32                                                                      signalSemaphoreCount;
+                       &imageMemoryBindSemaphore.get()                         //const VkSemaphore*                                            pSignalSemaphores;
+               };
+
+               VkSparseImageMemoryBindInfo                     imageResidencyBindInfo;
+               VkSparseImageOpaqueMemoryBindInfo       imageMipTailBindInfo;
+
+               if (imageResidencyMemoryBinds.size() > 0)
+               {
+                       imageResidencyBindInfo.image            = destImage;;
+                       imageResidencyBindInfo.bindCount        = static_cast<deUint32>(imageResidencyMemoryBinds.size());
+                       imageResidencyBindInfo.pBinds           = &imageResidencyMemoryBinds[0];
+
+                       bindSparseInfo.imageBindCount           = 1u;
+                       bindSparseInfo.pImageBinds                      = &imageResidencyBindInfo;
+               }
+
+               if (imageMipTailMemoryBinds.size() > 0)
+               {
+                       imageMipTailBindInfo.image = destImage;;
+                       imageMipTailBindInfo.bindCount = static_cast<deUint32>(imageMipTailMemoryBinds.size());
+                       imageMipTailBindInfo.pBinds = &imageMipTailMemoryBinds[0];
+
+                       bindSparseInfo.imageOpaqueBindCount = 1u;
+                       bindSparseInfo.pImageOpaqueBinds = &imageMipTailBindInfo;
+               }
+
+               VK_CHECK(vk.queueBindSparse(queue, 1u, &bindSparseInfo, DE_NULL));
+       }
+
+       {
+               // Create source buffer
+               const VkBufferCreateInfo bufferParams =
+               {
+                       VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,           // VkStructureType              sType;
+                       DE_NULL,                                                                        // const void*                  pNext;
+                       0u,                                                                                     // VkBufferCreateFlags  flags;
+                       bufferSize,                                                                     // VkDeviceSize                 size;
+                       VK_BUFFER_USAGE_TRANSFER_SRC_BIT,                       // VkBufferUsageFlags   usage;
+                       VK_SHARING_MODE_EXCLUSIVE,                                      // VkSharingMode                sharingMode;
+                       0u,                                                                                     // deUint32                             queueFamilyIndexCount;
+                       DE_NULL,                                                                        // const deUint32*              pQueueFamilyIndices;
+               };
+
+               Move<VkBuffer>                  buffer          = createBuffer(vk, device, &bufferParams);
+               de::MovePtr<Allocation> bufferAlloc = allocator.allocate(getBufferMemoryRequirements(vk, device, *buffer), MemoryRequirement::HostVisible);
+               Move<VkCommandPool>             cmdPool         = createCommandPool(vk, device, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex);
+               Move<VkCommandBuffer>   cmdBuffer       = allocateCommandBuffer(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+               Move<VkFence>                   fence           = createFence(vk, device);
+
+               VK_CHECK(vk.bindBufferMemory(device, *buffer, bufferAlloc->getMemory(), bufferAlloc->getOffset()));
+
+               // Barriers for copying buffer to image
+               const VkBufferMemoryBarrier preBufferBarrier =
+               {
+                       VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,        // VkStructureType      sType;
+                       DE_NULL,                                                                        // const void*          pNext;
+                       VK_ACCESS_HOST_WRITE_BIT,                                       // VkAccessFlags        srcAccessMask;
+                       VK_ACCESS_TRANSFER_READ_BIT,                            // VkAccessFlags        dstAccessMask;
+                       VK_QUEUE_FAMILY_IGNORED,                                        // deUint32                     srcQueueFamilyIndex;
+                       VK_QUEUE_FAMILY_IGNORED,                                        // deUint32                     dstQueueFamilyIndex;
+                       *buffer,                                                                        // VkBuffer                     buffer;
+                       0u,                                                                                     // VkDeviceSize         offset;
+                       bufferSize                                                                      // VkDeviceSize         size;
+               };
+
+               const VkImageMemoryBarrier preImageBarrier =
+               {
+                       VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,                 // VkStructureType                      sType;
+                       DE_NULL,                                                                                // const void*                          pNext;
+                       0u,                                                                                             // VkAccessFlags                        srcAccessMask;
+                       VK_ACCESS_TRANSFER_WRITE_BIT,                                   // VkAccessFlags                        dstAccessMask;
+                       VK_IMAGE_LAYOUT_UNDEFINED,                                              // VkImageLayout                        oldLayout;
+                       VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,                   // VkImageLayout                        newLayout;
+                       VK_QUEUE_FAMILY_IGNORED,                                                // deUint32                                     srcQueueFamilyIndex;
+                       VK_QUEUE_FAMILY_IGNORED,                                                // deUint32                                     dstQueueFamilyIndex;
+                       destImage,                                                                              // VkImage                                      image;
+                       {                                                                                               // VkImageSubresourceRange      subresourceRange;
+                               imageAspectFlags,                                                       // VkImageAspect        aspect;
+                               0u,                                                                                     // deUint32                     baseMipLevel;
+                               imageCreateInfo.mipLevels,                                      // deUint32                     mipLevels;
+                               0u,                                                                                     // deUint32                     baseArraySlice;
+                               imageCreateInfo.arrayLayers                                     // deUint32                     arraySize;
+                       }
+               };
+
+               const VkImageMemoryBarrier postImageBarrier =
+               {
+                       VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,                 // VkStructureType                      sType;
+                       DE_NULL,                                                                                // const void*                          pNext;
+                       VK_ACCESS_TRANSFER_WRITE_BIT,                                   // VkAccessFlags                        srcAccessMask;
+                       VK_ACCESS_SHADER_READ_BIT,                                              // VkAccessFlags                        dstAccessMask;
+                       VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,                   // VkImageLayout                        oldLayout;
+                       VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,               // VkImageLayout                        newLayout;
+                       VK_QUEUE_FAMILY_IGNORED,                                                // deUint32                                     srcQueueFamilyIndex;
+                       VK_QUEUE_FAMILY_IGNORED,                                                // deUint32                                     dstQueueFamilyIndex;
+                       destImage,                                                                              // VkImage                                      image;
+                       {                                                                                               // VkImageSubresourceRange      subresourceRange;
+                               imageAspectFlags,                                                       // VkImageAspect        aspect;
+                               0u,                                                                                     // deUint32                     baseMipLevel;
+                               imageCreateInfo.mipLevels,                                      // deUint32                     mipLevels;
+                               0u,                                                                                     // deUint32                     baseArraySlice;
+                               imageCreateInfo.arrayLayers                                     // deUint32                     arraySize;
+                       }
+               };
+
+               const VkCommandBufferBeginInfo cmdBufferBeginInfo =
+               {
+                       VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,    // VkStructureType                                      sType;
+                       DE_NULL,                                                                                // const void*                                          pNext;
+                       VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,    // VkCommandBufferUsageFlags            flags;
+                       (const VkCommandBufferInheritanceInfo*)DE_NULL,
+               };
+
+               std::vector<VkBufferImageCopy>  copyRegions             = srcTexture.getBufferCopyRegions();
+
+               // Write buffer data
+               srcTexture.write(reinterpret_cast<deUint8*>(bufferAlloc->getHostPtr()));
+
+               if (srcStencilTexture != DE_NULL)
+               {
+                       DE_ASSERT(stencilOffset != 0u);
+
+                       srcStencilTexture->write(reinterpret_cast<deUint8*>(bufferAlloc->getHostPtr()) + stencilOffset);
+
+                       std::vector<VkBufferImageCopy>  stencilCopyRegions = srcStencilTexture->getBufferCopyRegions();
+                       for (size_t regionIdx = 0; regionIdx < stencilCopyRegions.size(); regionIdx++)
+                       {
+                               VkBufferImageCopy region = stencilCopyRegions[regionIdx];
+                               region.bufferOffset += stencilOffset;
+
+                               copyRegions.push_back(region);
+                       }
+               }
+
+               flushMappedMemoryRange(vk, device, bufferAlloc->getMemory(), bufferAlloc->getOffset(), VK_WHOLE_SIZE);
+
+               // Copy buffer to image
+               VK_CHECK(vk.beginCommandBuffer(*cmdBuffer, &cmdBufferBeginInfo));
+               vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &preBufferBarrier, 1, &preImageBarrier);
+               vk.cmdCopyBufferToImage(*cmdBuffer, *buffer, destImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)copyRegions.size(), copyRegions.data());
+               vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
+               VK_CHECK(vk.endCommandBuffer(*cmdBuffer));
+
+               const VkPipelineStageFlags pipelineStageFlags = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT;
+
+               const VkSubmitInfo submitInfo =
+               {
+                       VK_STRUCTURE_TYPE_SUBMIT_INFO,                  // VkStructureType                              sType;
+                       DE_NULL,                                                                // const void*                                  pNext;
+                       1u,                                                                             // deUint32                                             waitSemaphoreCount;
+                       &imageMemoryBindSemaphore.get(),                // const VkSemaphore*                   pWaitSemaphores;
+                       &pipelineStageFlags,                                    // const VkPipelineStageFlags*  pWaitDstStageMask;
+                       1u,                                                                             // deUint32                                             commandBufferCount;
+                       &cmdBuffer.get(),                                               // const VkCommandBuffer*               pCommandBuffers;
+                       0u,                                                                             // deUint32                                             signalSemaphoreCount;
+                       DE_NULL                                                                 // const VkSemaphore*                   pSignalSemaphores;
+               };
+
+               try
+               {
+                       VK_CHECK(vk.queueSubmit(queue, 1, &submitInfo, *fence));
+                       VK_CHECK(vk.waitForFences(device, 1, &fence.get(), true, ~(0ull) /* infinity */));
+               }
+               catch (...)
+               {
+                       VK_CHECK(vk.deviceWaitIdle(device));
+                       throw;
+               }
+       }
+}
+
 void uploadTestTexture (const DeviceInterface&                 vk,
                                                VkDevice                                                device,
                                                VkQueue                                                 queue,
@@ -532,19 +954,20 @@ void uploadTestTexture (const DeviceInterface&                    vk,
                if (tcu::hasDepthComponent(srcTexture.getTextureFormat().order))
                {
                        tcu::TextureFormat format;
-                       switch (srcTexture.getTextureFormat().type) {
-                       case tcu::TextureFormat::UNSIGNED_INT_16_8_8:
-                               format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::UNORM_INT16);
-                               break;
-                       case tcu::TextureFormat::UNSIGNED_INT_24_8_REV:
-                               format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::UNSIGNED_INT_24_8_REV);
-                               break;
-                       case tcu::TextureFormat::FLOAT_UNSIGNED_INT_24_8_REV:
-                               format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::FLOAT);
-                               break;
-                       default:
-                               DE_ASSERT(0);
-                               break;
+                       switch (srcTexture.getTextureFormat().type)
+                       {
+                               case tcu::TextureFormat::UNSIGNED_INT_16_8_8:
+                                       format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::UNORM_INT16);
+                                       break;
+                               case tcu::TextureFormat::UNSIGNED_INT_24_8_REV:
+                                       format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::UNSIGNED_INT_24_8_REV);
+                                       break;
+                               case tcu::TextureFormat::FLOAT_UNSIGNED_INT_24_8_REV:
+                                       format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::FLOAT);
+                                       break;
+                               default:
+                                       DE_FATAL("Unexpected source texture format.");
+                                       break;
                        }
                        srcDepthTexture = srcTexture.copy(format);
                }
@@ -558,6 +981,79 @@ void uploadTestTexture (const DeviceInterface&                     vk,
                uploadTestTextureInternal(vk, device, queue, queueFamilyIndex, allocator, srcTexture, DE_NULL, srcTexture.getTextureFormat(), destImage);
 }
 
+void uploadTestTextureSparse (const DeviceInterface&                                   vk,
+                                                         VkDevice                                                                      device,
+                                                         const VkPhysicalDevice                                        physicalDevice,
+                                                         const InstanceInterface&                                      instance,
+                                                         const VkImageCreateInfo&                                      imageCreateInfo,
+                                                         VkQueue                                                                       queue,
+                                                         deUint32                                                                      queueFamilyIndex,
+                                                         Allocator&                                                            allocator,
+                                                         std::vector<de::SharedPtr<Allocation> >&      allocations,
+                                                         const TestTexture&                                            srcTexture,
+                                                         VkImage                                                                       destImage)
+{
+       if (tcu::isCombinedDepthStencilType(srcTexture.getTextureFormat().type))
+       {
+               de::MovePtr<TestTexture> srcDepthTexture;
+               de::MovePtr<TestTexture> srcStencilTexture;
+
+               if (tcu::hasDepthComponent(srcTexture.getTextureFormat().order))
+               {
+                       tcu::TextureFormat format;
+                       switch (srcTexture.getTextureFormat().type)
+                       {
+                               case tcu::TextureFormat::UNSIGNED_INT_16_8_8:
+                                       format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::UNORM_INT16);
+                                       break;
+                               case tcu::TextureFormat::UNSIGNED_INT_24_8_REV:
+                                       format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::UNSIGNED_INT_24_8_REV);
+                                       break;
+                               case tcu::TextureFormat::FLOAT_UNSIGNED_INT_24_8_REV:
+                                       format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::FLOAT);
+                                       break;
+                               default:
+                                       DE_FATAL("Unexpected source texture format.");
+                                       break;
+                       }
+                       srcDepthTexture = srcTexture.copy(format);
+               }
+
+               if (tcu::hasStencilComponent(srcTexture.getTextureFormat().order))
+                       srcStencilTexture = srcTexture.copy(tcu::getEffectiveDepthStencilTextureFormat(srcTexture.getTextureFormat(), tcu::Sampler::MODE_STENCIL));
+
+               uploadTestTextureInternalSparse (vk,
+                                                                                device,
+                                                                                physicalDevice,
+                                                                                instance,
+                                                                                imageCreateInfo,
+                                                                                queue,
+                                                                                queueFamilyIndex,
+                                                                                allocator,
+                                                                                allocations,
+                                                                                *srcDepthTexture,
+                                                                                srcStencilTexture.get(),
+                                                                                srcTexture.getTextureFormat(),
+                                                                                destImage);
+       }
+       else
+       {
+               uploadTestTextureInternalSparse (vk,
+                                                                                device,
+                                                                                physicalDevice,
+                                                                                instance,
+                                                                                imageCreateInfo,
+                                                                                queue,
+                                                                                queueFamilyIndex,
+                                                                                allocator,
+                                                                                allocations,
+                                                                                srcTexture,
+                                                                                DE_NULL,
+                                                                                srcTexture.getTextureFormat(),
+                                                                                destImage);
+       }
+}
+
 // Utilities for test textures
 
 template<typename TcuTextureType>
index 5a3675e..9c6a65c 100644 (file)
@@ -32,6 +32,7 @@
 #include "vkRef.hpp"
 #include "tcuTexture.hpp"
 #include "tcuCompressedTexture.hpp"
+#include "deSharedPtr.hpp"
 
 namespace vkt
 {
@@ -93,6 +94,25 @@ void                                                 uploadTestTexture                       (const vk::DeviceInterface&             vk,
                                                                                                                         const TestTexture&                             testTexture,
                                                                                                                         vk::VkImage                                    destImage);
 
+/*--------------------------------------------------------------------*//*!
+ * Uploads data from a test texture to a destination VK image using sparse
+ * binding.
+ *
+ * The VkImage must be non-multisampled and able to be used as a
+ * destination operand for transfer operations.
+ *//*--------------------------------------------------------------------*/
+void                                                   uploadTestTextureSparse         (const vk::DeviceInterface&                                             vk,
+                                                                                                                        vk::VkDevice                                                                   device,
+                                                                                                                        const vk::VkPhysicalDevice                                             physicalDevice,
+                                                                                                                        const vk::InstanceInterface&                                   instance,
+                                                                                                                        const vk::VkImageCreateInfo&                                   imageCreateInfo,
+                                                                                                                        vk::VkQueue                                                                    queue,
+                                                                                                                        deUint32                                                                               queueFamilyIndex,
+                                                                                                                        vk::Allocator&                                                                 allocator,
+                                                                                                                        std::vector<de::SharedPtr<vk::Allocation> >&   allocations,
+                                                                                                                        const TestTexture&                                                             srcTexture,
+                                                                                                                        vk::VkImage                                                                    destImage);
+
 class TestTexture
 {
 public:
index 98576aa..e38496d 100644 (file)
@@ -1466,12 +1466,12 @@ void ShaderRenderCaseInstance::uploadSparseImage (const tcu::TextureFormat&             tex
 
                const deUint32 noMatchFound = ~((deUint32)0);
 
-               deUint32 colorAspectIndex = noMatchFound;
+               deUint32 aspectIndex = noMatchFound;
                for (deUint32 memoryReqNdx = 0; memoryReqNdx < sparseMemoryReqCount; ++memoryReqNdx)
                {
-                       if (sparseImageMemoryRequirements[memoryReqNdx].formatProperties.aspectMask & VK_IMAGE_ASPECT_COLOR_BIT)
+                       if (sparseImageMemoryRequirements[memoryReqNdx].formatProperties.aspectMask == aspectMask)
                        {
-                               colorAspectIndex = memoryReqNdx;
+                               aspectIndex = memoryReqNdx;
                                break;
                        }
                }
@@ -1486,8 +1486,8 @@ void ShaderRenderCaseInstance::uploadSparseImage (const tcu::TextureFormat&               tex
                        }
                }
 
-               if (colorAspectIndex == noMatchFound)
-                       TCU_THROW(NotSupportedError, "Not supported image aspect - the test supports currently only VK_IMAGE_ASPECT_COLOR_BIT.");
+               if (aspectIndex == noMatchFound)
+                       TCU_THROW(NotSupportedError, "Required image aspect not supported.");
 
                const VkMemoryRequirements      memoryRequirements      = getImageMemoryRequirements(vk, vkDevice, sparseImage);
 
@@ -1515,7 +1515,7 @@ void ShaderRenderCaseInstance::uploadSparseImage (const tcu::TextureFormat&               tex
                if (sparseImageFormatPropVec.size() == 0)
                        TCU_THROW(NotSupportedError, "The image format does not support sparse operations.");
 
-               const VkSparseImageMemoryRequirements           aspectRequirements      = sparseImageMemoryRequirements[colorAspectIndex];
+               const VkSparseImageMemoryRequirements           aspectRequirements      = sparseImageMemoryRequirements[aspectIndex];
                const VkExtent3D                                                        imageGranularity        = aspectRequirements.formatProperties.imageGranularity;
 
                std::vector<VkSparseImageMemoryBind>            imageResidencyMemoryBinds;
index 62874a5..0a1fe4b 100644 (file)
@@ -68,12 +68,14 @@ enum
 
 struct TextureShadowCommonTestCaseParameters
 {
-                                                       TextureShadowCommonTestCaseParameters   (void);
-       Sampler::CompareMode    compareOp;
+                                                                               TextureShadowCommonTestCaseParameters   (void);
+       Sampler::CompareMode                            compareOp;
+       TextureBinding::ImageBackingMode        backingMode;
 };
 
 TextureShadowCommonTestCaseParameters::TextureShadowCommonTestCaseParameters (void)
-       : compareOp                             (Sampler::COMPAREMODE_EQUAL)
+       : compareOp                                                     (Sampler::COMPAREMODE_EQUAL)
+       , backingMode                                           (TextureBinding::IMAGE_BACKING_MODE_REGULAR)
 {
 }
 
@@ -262,7 +264,7 @@ Texture2DShadowTestInstance::Texture2DShadowTestInstance (Context& context, cons
        // Upload.
        for (std::vector<TestTexture2DSp>::iterator i = m_textures.begin(); i != m_textures.end(); ++i)
        {
-               m_renderer.add2DTexture(*i);
+               m_renderer.add2DTexture(*i, m_testParameters.backingMode);
        }
 
        // Compute cases.
@@ -484,7 +486,7 @@ TextureCubeShadowTestInstance::TextureCubeShadowTestInstance (Context& context,
        // Upload.
        for (vector<TestTextureCubeSp>::iterator i = m_textures.begin(); i != m_textures.end(); i++)
        {
-               m_renderer.addCubeTexture(*i);
+               m_renderer.addCubeTexture(*i, m_testParameters.backingMode);
        }
 
        // Compute cases
@@ -689,7 +691,7 @@ Texture2DArrayShadowTestInstance::Texture2DArrayShadowTestInstance (Context& con
        // Upload.
        for (std::vector<TestTexture2DArraySp>::iterator i = m_textures.begin(); i != m_textures.end(); ++i)
        {
-               m_renderer.add2DArrayTexture(*i);
+               m_renderer.add2DArrayTexture(*i, m_testParameters.backingMode);
        }
 
        // Compute cases.
@@ -817,8 +819,18 @@ void populateTextureShadowTests (tcu::TestCaseGroup* textureShadowTests)
 
        static const struct
        {
-               const char*             name;
-               const VkFormat  format;
+               const char*                                                             name;
+               const TextureBinding::ImageBackingMode  backingMode;
+       } backingModes[] =
+       {
+               { "",                   TextureBinding::IMAGE_BACKING_MODE_REGULAR      },
+               { "sparse_",    TextureBinding::IMAGE_BACKING_MODE_SPARSE       }
+       };
+
+       static const struct
+       {
+               const char*                                                             name;
+               const VkFormat                                                  format;
        } formats[] =
        {
                { "d16_unorm",                          VK_FORMAT_D16_UNORM                             },
@@ -831,9 +843,9 @@ void populateTextureShadowTests (tcu::TestCaseGroup* textureShadowTests)
 
        static const struct
        {
-               const char*                                     name;
-               const Sampler::FilterMode       minFilter;
-               const Sampler::FilterMode       magFilter;
+               const char*                                                             name;
+               const Sampler::FilterMode                               minFilter;
+               const Sampler::FilterMode                               magFilter;
        } filters[] =
        {
                { "nearest",                            Sampler::NEAREST,                                       Sampler::NEAREST        },
@@ -846,8 +858,8 @@ void populateTextureShadowTests (tcu::TestCaseGroup* textureShadowTests)
 
        static const struct
        {
-               const char*                                     name;
-               const Sampler::CompareMode      op;
+               const char*                                                             name;
+               const Sampler::CompareMode                              op;
        } compareOp[] =
        {
                { "less_or_equal",              Sampler::COMPAREMODE_LESS_OR_EQUAL              },
@@ -872,21 +884,25 @@ void populateTextureShadowTests (tcu::TestCaseGroup* textureShadowTests)
                        {
                                for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); formatNdx++)
                                {
-                                       const string                                            name                    = string(compareOp[compareNdx].name) + "_" + formats[formatNdx].name;
-                                       Texture2DShadowTestCaseParameters       testParameters;
-
-                                       testParameters.minFilter        = filters[filterNdx].minFilter;
-                                       testParameters.magFilter        = filters[filterNdx].magFilter;
-                                       testParameters.format           = formats[formatNdx].format;
-                                       testParameters.compareOp        = compareOp[compareNdx].op;
-                                       testParameters.wrapS            = Sampler::REPEAT_GL;
-                                       testParameters.wrapT            = Sampler::REPEAT_GL;
-                                       testParameters.width            = 32;
-                                       testParameters.height           = 64;
-
-                                       testParameters.programs.push_back(PROGRAM_2D_SHADOW);
-
-                                       filterGroup->addChild(new TextureTestCase<Texture2DShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                       for (int backingNdx = 0; backingNdx < DE_LENGTH_OF_ARRAY(backingModes); backingNdx++)
+                                       {
+                                               const string                                            name    = string(backingModes[backingNdx].name) + compareOp[compareNdx].name + "_" + formats[formatNdx].name;
+                                               Texture2DShadowTestCaseParameters       testParameters;
+
+                                               testParameters.minFilter        = filters[filterNdx].minFilter;
+                                               testParameters.magFilter        = filters[filterNdx].magFilter;
+                                               testParameters.format           = formats[formatNdx].format;
+                                               testParameters.backingMode      = backingModes[backingNdx].backingMode;
+                                               testParameters.compareOp        = compareOp[compareNdx].op;
+                                               testParameters.wrapS            = Sampler::REPEAT_GL;
+                                               testParameters.wrapT            = Sampler::REPEAT_GL;
+                                               testParameters.width            = 32;
+                                               testParameters.height           = 64;
+
+                                               testParameters.programs.push_back(PROGRAM_2D_SHADOW);
+
+                                               filterGroup->addChild(new TextureTestCase<Texture2DShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                       }
                                }
                        }
 
@@ -908,20 +924,24 @@ void populateTextureShadowTests (tcu::TestCaseGroup* textureShadowTests)
                        {
                                for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); formatNdx++)
                                {
-                                       const string                                                    name                    = string(compareOp[compareNdx].name) + "_" + formats[formatNdx].name;
-                                       TextureCubeShadowTestCaseParameters             testParameters;
-
-                                       testParameters.minFilter        = filters[filterNdx].minFilter;
-                                       testParameters.magFilter        = filters[filterNdx].magFilter;
-                                       testParameters.format           = formats[formatNdx].format;
-                                       testParameters.compareOp        = compareOp[compareNdx].op;
-                                       testParameters.wrapS            = Sampler::REPEAT_GL;
-                                       testParameters.wrapT            = Sampler::REPEAT_GL;
-                                       testParameters.size                     = 32;
-
-                                       testParameters.programs.push_back(PROGRAM_CUBE_SHADOW);
-
-                                       filterGroup->addChild(new TextureTestCase<TextureCubeShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                       for (int backingNdx = 0; backingNdx < DE_LENGTH_OF_ARRAY(backingModes); backingNdx++)
+                                       {
+                                               const string                                                    name    = string(backingModes[backingNdx].name) + compareOp[compareNdx].name + "_" + formats[formatNdx].name;
+                                               TextureCubeShadowTestCaseParameters             testParameters;
+
+                                               testParameters.minFilter        = filters[filterNdx].minFilter;
+                                               testParameters.magFilter        = filters[filterNdx].magFilter;
+                                               testParameters.format           = formats[formatNdx].format;
+                                               testParameters.backingMode      = backingModes[backingNdx].backingMode;
+                                               testParameters.compareOp        = compareOp[compareNdx].op;
+                                               testParameters.wrapS            = Sampler::REPEAT_GL;
+                                               testParameters.wrapT            = Sampler::REPEAT_GL;
+                                               testParameters.size                     = 32;
+
+                                               testParameters.programs.push_back(PROGRAM_CUBE_SHADOW);
+
+                                               filterGroup->addChild(new TextureTestCase<TextureCubeShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                       }
                                }
                        }
 
@@ -943,22 +963,26 @@ void populateTextureShadowTests (tcu::TestCaseGroup* textureShadowTests)
                        {
                                for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); formatNdx++)
                                {
-                                       const string                                                    name                    = string(compareOp[compareNdx].name) + "_" + formats[formatNdx].name;
-                                       Texture2DArrayShadowTestCaseParameters  testParameters;
-
-                                       testParameters.minFilter        = filters[filterNdx].minFilter;
-                                       testParameters.magFilter        = filters[filterNdx].magFilter;
-                                       testParameters.format           = formats[formatNdx].format;
-                                       testParameters.compareOp        = compareOp[compareNdx].op;
-                                       testParameters.wrapS            = Sampler::REPEAT_GL;
-                                       testParameters.wrapT            = Sampler::REPEAT_GL;
-                                       testParameters.width            = 32;
-                                       testParameters.height           = 64;
-                                       testParameters.numLayers        = 8;
-
-                                       testParameters.programs.push_back(PROGRAM_2D_ARRAY_SHADOW);
-
-                                       filterGroup->addChild(new TextureTestCase<Texture2DArrayShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                       for (int backingNdx = 0; backingNdx < DE_LENGTH_OF_ARRAY(backingModes); backingNdx++)
+                                       {
+                                               const string                                                    name    = string(backingModes[backingNdx].name) + compareOp[compareNdx].name + "_" + formats[formatNdx].name;
+                                               Texture2DArrayShadowTestCaseParameters  testParameters;
+
+                                               testParameters.minFilter        = filters[filterNdx].minFilter;
+                                               testParameters.magFilter        = filters[filterNdx].magFilter;
+                                               testParameters.format           = formats[formatNdx].format;
+                                               testParameters.backingMode      = backingModes[backingNdx].backingMode;
+                                               testParameters.compareOp        = compareOp[compareNdx].op;
+                                               testParameters.wrapS            = Sampler::REPEAT_GL;
+                                               testParameters.wrapT            = Sampler::REPEAT_GL;
+                                               testParameters.width            = 32;
+                                               testParameters.height           = 64;
+                                               testParameters.numLayers        = 8;
+
+                                               testParameters.programs.push_back(PROGRAM_2D_ARRAY_SHADOW);
+
+                                               filterGroup->addChild(new TextureTestCase<Texture2DArrayShadowTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                       }
                                }
                        }
 
index d933926..13dcec2 100644 (file)
@@ -53,6 +53,19 @@ namespace texture
 namespace util
 {
 
+deUint32 findQueueFamilyIndexWithCaps (const InstanceInterface& vkInstance, VkPhysicalDevice physicalDevice, VkQueueFlags requiredCaps)
+{
+       const std::vector<VkQueueFamilyProperties>      queueProps      = getPhysicalDeviceQueueFamilyProperties(vkInstance, physicalDevice);
+
+       for (size_t queueNdx = 0; queueNdx < queueProps.size(); queueNdx++)
+       {
+               if ((queueProps[queueNdx].queueFlags & requiredCaps) == requiredCaps)
+                       return (deUint32)queueNdx;
+       }
+
+       TCU_THROW(NotSupportedError, "No matching queue found");
+}
+
 struct ShaderParameters {
        float           bias;                           //!< User-supplied bias.
        float           ref;                            //!< Reference value for shadow lookups.
@@ -285,14 +298,23 @@ void initializePrograms(vk::SourceCollections& programCollection, glu::Precision
 }
 
 TextureBinding::TextureBinding (Context& context)
-       : m_context                     (context)
+       : m_context                             (context)
+       , m_queueFamilyIndex    (findQueueFamilyIndexWithCaps(context.getInstanceInterface(), context.getPhysicalDevice(), VK_QUEUE_GRAPHICS_BIT|VK_QUEUE_SPARSE_BINDING_BIT))
+       , m_device                              (createDevice())
+       , m_deviceInterface             (context.getInstanceInterface(), *m_device)
+       , m_allocator                   (createAllocator())
 {
 }
 
-TextureBinding::TextureBinding (Context& context, const TestTextureSp& textureData, const TextureBinding::Type type)
-       : m_context                     (context)
-       , m_type                        (type)
-       , m_textureData         (textureData)
+TextureBinding::TextureBinding (Context& context, const TestTextureSp& textureData, const TextureBinding::Type type, const TextureBinding::ImageBackingMode backingMode)
+       : m_context                             (context)
+       , m_queueFamilyIndex    (findQueueFamilyIndexWithCaps(context.getInstanceInterface(), context.getPhysicalDevice(), VK_QUEUE_GRAPHICS_BIT|VK_QUEUE_SPARSE_BINDING_BIT))
+       , m_type                                (type)
+       , m_backingMode                 (backingMode)
+       , m_textureData                 (textureData)
+       , m_device                              (createDevice())
+       , m_deviceInterface             (context.getInstanceInterface(), *m_device)
+       , m_allocator                   (createAllocator())
 {
        updateTextureData(m_textureData, m_type);
 }
@@ -301,15 +323,15 @@ void TextureBinding::updateTextureData (const TestTextureSp& textureData, const
 {
        const DeviceInterface&                                          vkd                                             = m_context.getDeviceInterface();
        const VkDevice                                                          vkDevice                                = m_context.getDevice();
-       const VkQueue                                                           queue                                   = m_context.getUniversalQueue();
-       const deUint32                                                          queueFamilyIndex                = m_context.getUniversalQueueFamilyIndex();
+       const bool                                                                      sparse                                  = m_backingMode == IMAGE_BACKING_MODE_SPARSE;
+       const deUint32                                                          queueFamilyIndex                = sparse ? m_queueFamilyIndex : m_context.getUniversalQueueFamilyIndex();
+       const VkQueue                                                           queue                                   = sparse ? getDeviceQueue(vkd, vkDevice, queueFamilyIndex, 0) : m_context.getUniversalQueue();
        Allocator&                                                                      allocator                               = m_context.getDefaultAllocator();
-
        m_type                  = textureType;
        m_textureData   = textureData;
 
        const bool                                                                      isCube                                  = m_type == TYPE_CUBE_MAP;
-       const VkImageCreateFlags                                        imageCreateFlags                = isCube ? VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT : 0;
+       VkImageCreateFlags                                                      imageCreateFlags                = (isCube ? VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT : 0) | (sparse ? (VK_IMAGE_CREATE_SPARSE_BINDING_BIT | VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT) : 0);
        const VkImageViewType                                           imageViewType                   = textureTypeToImageViewType(textureType);
        const VkImageType                                                       imageType                               = imageViewTypeToImageType(imageViewType);
        const VkImageTiling                                                     imageTiling                             = VK_IMAGE_TILING_OPTIMAL;
@@ -365,13 +387,37 @@ void TextureBinding::updateTextureData (const TestTextureSp& textureData, const
                VK_IMAGE_LAYOUT_UNDEFINED                                                                               // VkImageLayout                        initialLayout;
        };
 
-       m_textureImage                  = createImage(vkd, vkDevice, &imageParams);
-       m_textureImageMemory    = allocator.allocate(getImageMemoryRequirements(vkd, vkDevice, *m_textureImage), MemoryRequirement::Any);
-       VK_CHECK(vkd.bindImageMemory(vkDevice, *m_textureImage, m_textureImageMemory->getMemory(), m_textureImageMemory->getOffset()));
+       m_textureImage = createImage(vkd, vkDevice, &imageParams);
 
-       updateTextureViewMipLevels(0, mipLevels - 1);
+       if (sparse)
+       {
+               pipeline::uploadTestTextureSparse       (vkd,
+                                                                                        vkDevice,
+                                                                                        m_context.getPhysicalDevice(),
+                                                                                        m_context.getInstanceInterface(),
+                                                                                        imageParams,
+                                                                                        queue,
+                                                                                        queueFamilyIndex,
+                                                                                        *m_allocator,
+                                                                                        m_allocations,
+                                                                                        *m_textureData,
+                                                                                        *m_textureImage);
+       }
+       else
+       {
+               m_textureImageMemory = allocator.allocate(getImageMemoryRequirements(vkd, vkDevice, *m_textureImage), MemoryRequirement::Any);
+               VK_CHECK(vkd.bindImageMemory(vkDevice, *m_textureImage, m_textureImageMemory->getMemory(), m_textureImageMemory->getOffset()));
+
+               pipeline::uploadTestTexture     (vkd,
+                                                                        vkDevice,
+                                                                        queue,
+                                                                        queueFamilyIndex,
+                                                                        allocator,
+                                                                        *m_textureData,
+                                                                        *m_textureImage);
+       }
 
-       pipeline::uploadTestTexture(vkd, vkDevice, queue, queueFamilyIndex, allocator, *m_textureData, *m_textureImage);
+       updateTextureViewMipLevels(0, mipLevels - 1);
 }
 
 void TextureBinding::updateTextureViewMipLevels (deUint32 baseLevel, deUint32 maxLevel)
@@ -404,6 +450,45 @@ void TextureBinding::updateTextureViewMipLevels (deUint32 baseLevel, deUint32 ma
        m_textureImageView              = createImageView(vkd, vkDevice, &viewParams);
 }
 
+vk::Allocator* TextureBinding::createAllocator() const
+{
+       VkPhysicalDeviceMemoryProperties memoryProperties = getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice());
+       return new SimpleAllocator(m_deviceInterface, *m_device, memoryProperties);
+}
+
+Move<VkDevice> TextureBinding::createDevice() const
+{
+       const InstanceInterface&                                vk                                      = m_context.getInstanceInterface();
+       const VkPhysicalDevice                                  physicalDevice          = m_context.getPhysicalDevice();
+       const VkPhysicalDeviceFeatures                  deviceFeatures          = getPhysicalDeviceFeatures(vk, physicalDevice);
+
+       VkDeviceQueueCreateInfo                                 queueInfo;
+       VkDeviceCreateInfo                                              deviceInfo;
+       const float                                                             queuePriority           = 1.0f;
+
+       deMemset(&queueInfo,    0, sizeof(queueInfo));
+       deMemset(&deviceInfo,   0, sizeof(deviceInfo));
+
+       queueInfo.sType                                                 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
+       queueInfo.pNext                                                 = DE_NULL;
+       queueInfo.flags                                                 = (VkDeviceQueueCreateFlags)0u;
+       queueInfo.queueFamilyIndex                              = m_queueFamilyIndex;
+       queueInfo.queueCount                                    = 1u;
+       queueInfo.pQueuePriorities                              = &queuePriority;
+
+       deviceInfo.sType                                                = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
+       deviceInfo.pNext                                                = DE_NULL;
+       deviceInfo.queueCreateInfoCount                 = 1u;
+       deviceInfo.pQueueCreateInfos                    = &queueInfo;
+       deviceInfo.enabledExtensionCount                = 0u;
+       deviceInfo.ppEnabledExtensionNames              = DE_NULL;
+       deviceInfo.enabledLayerCount                    = 0u;
+       deviceInfo.ppEnabledLayerNames                  = DE_NULL;
+       deviceInfo.pEnabledFeatures                             = &deviceFeatures;
+
+       return vk::createDevice(vk, physicalDevice, &deviceInfo);
+}
+
 const deUint16         TextureRenderer::s_vertexIndices[6] = { 0, 1, 2, 2, 1, 3 };
 const VkDeviceSize     TextureRenderer::s_vertexIndexBufferSize = sizeof(TextureRenderer::s_vertexIndices);
 
@@ -813,24 +898,24 @@ void TextureRenderer::clearImage(VkImage image)
        VK_CHECK(vkd.waitForFences(vkDevice, 1, &m_fence.get(), true, ~(0ull) /* infinity */));
 }
 
-void TextureRenderer::add2DTexture (const TestTexture2DSp& texture)
+void TextureRenderer::add2DTexture (const TestTexture2DSp& texture, TextureBinding::ImageBackingMode backingMode)
 {
-       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_2D)));
+       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_2D, backingMode)));
 }
 
-void TextureRenderer::addCubeTexture (const TestTextureCubeSp& texture)
+void TextureRenderer::addCubeTexture (const TestTextureCubeSp& texture, TextureBinding::ImageBackingMode backingMode)
 {
-       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_CUBE_MAP)));
+       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_CUBE_MAP, backingMode)));
 }
 
-void TextureRenderer::add2DArrayTexture (const TestTexture2DArraySp& texture)
+void TextureRenderer::add2DArrayTexture (const TestTexture2DArraySp& texture, TextureBinding::ImageBackingMode backingMode)
 {
-       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_2D_ARRAY)));
+       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_2D_ARRAY, backingMode)));
 }
 
-void TextureRenderer::add3DTexture (const TestTexture3DSp& texture)
+void TextureRenderer::add3DTexture (const TestTexture3DSp& texture, TextureBinding::ImageBackingMode backingMode)
 {
-       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_3D)));
+       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_3D, backingMode)));
 }
 
 const pipeline::TestTexture2D& TextureRenderer::get2DTexture (int textureIndex) const
index 4f1af61..7b1fc92 100644 (file)
@@ -133,26 +133,43 @@ public:
 
                TYPE_LAST
        };
-                                                                               TextureBinding                          (Context& context);
-                                                                               TextureBinding                          (Context& context, const TestTextureSp& textureData, const Type type);
-       vk::VkImage                                                     getImage                                        (void) { return *m_textureImage; }
-       vk::VkImageView                                         getImageView                            (void) { return *m_textureImageView; }
-       Type                                                            getType                                         (void) { return m_type; }
-       const pipeline::TestTexture&            getTestTexture                          (void) { return *m_textureData; }
-       void                                                            updateTextureViewMipLevels      (deUint32 baseLevel, deUint32 maxLevel);
 
-private:
-                                                                               TextureBinding                          (const TextureBinding&);        // not allowed!
-       TextureBinding&                                         operator=                                       (const TextureBinding&);        // not allowed!
+       enum ImageBackingMode
+       {
+               IMAGE_BACKING_MODE_REGULAR = 0,
+               IMAGE_BACKING_MODE_SPARSE,
 
-       void                                                            updateTextureData                       (const TestTextureSp& textureData, const Type type);
+               IMAGE_BACKING_MODE_LAST
+       };
+                                                                                                       TextureBinding                          (Context& context);
+                                                                                                       TextureBinding                          (Context& context, const TestTextureSp& textureData, const Type type,
+                                                                                                                                                                const ImageBackingMode backingMode = IMAGE_BACKING_MODE_REGULAR);
+       vk::VkImage                                                                             getImage                                        (void) { return *m_textureImage; }
+       vk::VkImageView                                                                 getImageView                            (void) { return *m_textureImageView; }
+       Type                                                                                    getType                                         (void) { return m_type; }
+       const pipeline::TestTexture&                                    getTestTexture                          (void) { return *m_textureData; }
+       void                                                                                    updateTextureViewMipLevels      (deUint32 baseLevel, deUint32 maxLevel);
 
-       Context&                                                        m_context;
-       Type                                                            m_type;
-       TestTextureSp                                           m_textureData;
-       vk::Move<vk::VkImage>                           m_textureImage;
-       de::MovePtr<vk::Allocation>                     m_textureImageMemory;
-       vk::Move<vk::VkImageView>                       m_textureImageView;
+private:
+                                                                                                       TextureBinding                          (const TextureBinding&);        // not allowed!
+       TextureBinding&                                                                 operator=                                       (const TextureBinding&);        // not allowed!
+
+       void                                                                                    updateTextureData                       (const TestTextureSp& textureData, const Type type);
+       vk::Allocator*                                                                  createAllocator                         (void) const;
+       vk::Move<vk::VkDevice>                                                  createDevice                            (void) const;
+
+       Context&                                                                                m_context;
+       const deUint32                                                                  m_queueFamilyIndex;
+       Type                                                                                    m_type;
+       ImageBackingMode                                                                m_backingMode;
+       TestTextureSp                                                                   m_textureData;
+       vk::Move<vk::VkImage>                                                   m_textureImage;
+       de::MovePtr<vk::Allocation>                                             m_textureImageMemory;
+       vk::Move<vk::VkImageView>                                               m_textureImageView;
+       vk::Unique<vk::VkDevice>                                                m_device;
+       vk::DeviceDriver                                                                m_deviceInterface;
+       const de::UniquePtr<vk::Allocator>                              m_allocator;
+       std::vector<de::SharedPtr<vk::Allocation> >             m_allocations;
 };
 
 typedef de::SharedPtr<TextureBinding>  TextureBindingSp;
@@ -173,16 +190,20 @@ public:
                                                                                                                                         const float                                                                    maxAnisotropy);
 
        void                                                            clearImage                                      (vk::VkImage image);
-       void                                                            add2DTexture                            (const TestTexture2DSp& texture);
+       void                                                            add2DTexture                            (const TestTexture2DSp& texture,
+                                                                                                                                        TextureBinding::ImageBackingMode backingMode = TextureBinding::IMAGE_BACKING_MODE_REGULAR);
        const pipeline::TestTexture2D&          get2DTexture                            (int textureIndex) const;
 
-       void                                                            addCubeTexture                          (const TestTextureCubeSp& texture);
+       void                                                            addCubeTexture                          (const TestTextureCubeSp& texture,
+                                                                                                                                        TextureBinding::ImageBackingMode backingMode = TextureBinding::IMAGE_BACKING_MODE_REGULAR);
        const pipeline::TestTextureCube&        getCubeTexture                          (int textureIndex) const;
 
-       void                                                            add2DArrayTexture                       (const TestTexture2DArraySp& texture);
+       void                                                            add2DArrayTexture                       (const TestTexture2DArraySp& texture,
+                                                                                                                                        TextureBinding::ImageBackingMode backingMode = TextureBinding::IMAGE_BACKING_MODE_REGULAR);
        const pipeline::TestTexture2DArray&     get2DArrayTexture                       (int textureIndex) const;
 
-       void                                                            add3DTexture                            (const TestTexture3DSp& texture);
+       void                                                            add3DTexture                            (const TestTexture3DSp& texture,
+                                                                                                                                        TextureBinding::ImageBackingMode backingMode = TextureBinding::IMAGE_BACKING_MODE_REGULAR);
        const pipeline::TestTexture3D&          get3DTexture                            (int textureIndex) const;
 
        void                                                            setViewport                                     (float viewportX, float viewportY, float viewportW, float viewportH);
index ff31551..e7b605f 100644 (file)
@@ -245929,869 +245929,1733 @@ dEQP-VK.texture.mipmap.3d.max_level.linear_nearest
 dEQP-VK.texture.mipmap.3d.max_level.nearest_linear
 dEQP-VK.texture.mipmap.3d.max_level.linear_linear
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.nearest_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d.linear_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d.linear_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.always_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.never_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.always_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear.never_d16_unorm
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.nearest_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.cube.linear_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.cube.linear_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_nearest.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.nearest_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_or_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.less_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_less_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.greater_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_greater_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.not_equal_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_not_equal_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.always_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_always_d32_sfloat_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d16_unorm
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d16_unorm
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_x8_d24_unorm_pack32
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_x8_d24_unorm_pack32
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d32_sfloat
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d32_sfloat
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d16_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d16_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d24_unorm_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d24_unorm_s8_uint
 dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.never_d32_sfloat_s8_uint
+dEQP-VK.texture.shadow.2d_array.linear_mipmap_linear.sparse_never_d32_sfloat_s8_uint
 dEQP-VK.texture.filtering_anisotropy.basic.anisotropy_2.mag_nearest_min_nearest
 dEQP-VK.texture.filtering_anisotropy.basic.anisotropy_2.mag_linear_min_nearest
 dEQP-VK.texture.filtering_anisotropy.basic.anisotropy_2.mag_nearest_min_linear