Add Vulkan port of the GLES3 texture filtering tests
authorPeter Siket <ps.szeged@partner.samsung.com>
Fri, 15 Jul 2016 10:14:39 +0000 (12:14 +0200)
committerPyry Haulos <phaulos@google.com>
Thu, 15 Sep 2016 21:38:29 +0000 (14:38 -0700)
Change-Id: I3aaf5ed38ba63067f5d205317f26818ba42df925

15 files changed:
android/cts/master/vk-master.txt
external/vulkancts/framework/vulkan/vkImageUtil.cpp
external/vulkancts/framework/vulkan/vkImageUtil.hpp
external/vulkancts/modules/vulkan/CMakeLists.txt
external/vulkancts/modules/vulkan/pipeline/vktPipelineImageUtil.cpp
external/vulkancts/modules/vulkan/pipeline/vktPipelineImageUtil.hpp
external/vulkancts/modules/vulkan/texture/CMakeLists.txt [new file with mode: 0644]
external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/texture/vktTextureTests.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/vktTestPackage.cpp
external/vulkancts/mustpass/1.0.1/vk-default.txt

index 290b579..f2e4dbd 100644 (file)
@@ -116215,3 +116215,2771 @@ dEQP-VK.fragment_operations.early_fragment.no_early_fragment_tests_depth_no_atta
 dEQP-VK.fragment_operations.early_fragment.no_early_fragment_tests_stencil_no_attachment
 dEQP-VK.fragment_operations.early_fragment.early_fragment_tests_depth_no_attachment
 dEQP-VK.fragment_operations.early_fragment.early_fragment_tests_stencil_no_attachment
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_nearest
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_linear
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_nearest
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_linear
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_nearest
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_linear
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_nearest
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_linear
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.4x8_nearest
+dEQP-VK.texture.filtering.2d.sizes.4x8_linear
+dEQP-VK.texture.filtering.2d.sizes.4x8_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.4x8_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.4x8_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.4x8_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.32x64_nearest
+dEQP-VK.texture.filtering.2d.sizes.32x64_linear
+dEQP-VK.texture.filtering.2d.sizes.32x64_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.32x64_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.32x64_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.32x64_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.128x128_nearest
+dEQP-VK.texture.filtering.2d.sizes.128x128_linear
+dEQP-VK.texture.filtering.2d.sizes.128x128_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.128x128_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.128x128_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.128x128_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.3x7_nearest
+dEQP-VK.texture.filtering.2d.sizes.3x7_linear
+dEQP-VK.texture.filtering.2d.sizes.3x7_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.3x7_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.3x7_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.3x7_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.31x55_nearest
+dEQP-VK.texture.filtering.2d.sizes.31x55_linear
+dEQP-VK.texture.filtering.2d.sizes.31x55_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.31x55_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.31x55_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.31x55_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.127x99_nearest
+dEQP-VK.texture.filtering.2d.sizes.127x99_linear
+dEQP-VK.texture.filtering.2d.sizes.127x99_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.127x99_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.127x99_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.127x99_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_nearest
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_linear
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_nearest
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_linear
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_nearest
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_linear
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_nearest
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_linear
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.8x8_nearest
+dEQP-VK.texture.filtering.cube.sizes.8x8_linear
+dEQP-VK.texture.filtering.cube.sizes.8x8_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.8x8_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.8x8_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.8x8_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.64x64_nearest
+dEQP-VK.texture.filtering.cube.sizes.64x64_linear
+dEQP-VK.texture.filtering.cube.sizes.64x64_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.64x64_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.64x64_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.64x64_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.128x128_nearest
+dEQP-VK.texture.filtering.cube.sizes.128x128_linear
+dEQP-VK.texture.filtering.cube.sizes.128x128_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.128x128_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.128x128_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.128x128_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.7x7_nearest
+dEQP-VK.texture.filtering.cube.sizes.7x7_linear
+dEQP-VK.texture.filtering.cube.sizes.7x7_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.7x7_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.7x7_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.7x7_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.63x63_nearest
+dEQP-VK.texture.filtering.cube.sizes.63x63_linear
+dEQP-VK.texture.filtering.cube.sizes.63x63_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.63x63_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.63x63_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.63x63_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.no_edges_visible.nearest
+dEQP-VK.texture.filtering.cube.no_edges_visible.linear
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_linear
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_nearest
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_linear
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_nearest
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_linear
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_linear
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_linear
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_linear
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_linear
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_linear
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_linear
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_nearest
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_linear
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_nearest
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_linear
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_nearest
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_linear
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_nearest
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_linear
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_nearest
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_linear
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_nearest
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_linear
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_nearest
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_linear
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_nearest
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_linear
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_nearest
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_linear
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
index ef8a73a..d415f3d 100644 (file)
@@ -734,7 +734,7 @@ static VkBorderColor mapBorderColor (tcu::TextureChannelClass channelClass, cons
        return VK_BORDER_COLOR_LAST;
 }
 
-VkSamplerCreateInfo mapSampler (const tcu::Sampler& sampler, const tcu::TextureFormat& format)
+VkSamplerCreateInfo mapSampler (const tcu::Sampler& sampler, const tcu::TextureFormat& format, float minLod, float maxLod)
 {
        const bool                                      compareEnabled  = (sampler.compare != tcu::Sampler::COMPAREMODE_NONE);
        const VkCompareOp                       compareOp               = (compareEnabled) ? (mapCompareMode(sampler.compare)) : (VK_COMPARE_OP_ALWAYS);
@@ -757,8 +757,8 @@ VkSamplerCreateInfo mapSampler (const tcu::Sampler& sampler, const tcu::TextureF
                1.0f,                                                                                                           // maxAnisotropy
                (VkBool32)(compareEnabled ? VK_TRUE : VK_FALSE),                        // compareEnable
                compareOp,                                                                                                      // compareOp
-               0.0f,                                                                                                           // minLod
-               (isMipmapEnabled ? 1000.0f : 0.25f),                                            // maxLod
+               (isMipmapEnabled ? minLod : 0.0f),                                                      // minLod
+               (isMipmapEnabled ? maxLod : 0.25f),                                                     // maxLod
                borderColor,                                                                                            // borderColor
                (VkBool32)(sampler.normalizedCoords ? VK_FALSE : VK_TRUE),      // unnormalizedCoords
        };
index b2f02ec..52b7ea5 100644 (file)
@@ -59,7 +59,7 @@ VkSamplerMipmapMode                   mapMipmapMode                           (tcu::Sampler::FilterMode filterMode);
 VkSamplerAddressMode           mapWrapMode                                     (tcu::Sampler::WrapMode wrapMode);
 VkCompareOp                                    mapCompareMode                          (tcu::Sampler::CompareMode mode);
 VkFormat                                       mapTextureFormat                        (const tcu::TextureFormat& format);
-VkSamplerCreateInfo                    mapSampler                                      (const tcu::Sampler& sampler, const tcu::TextureFormat& format);
+VkSamplerCreateInfo                    mapSampler                                      (const tcu::Sampler& sampler, const tcu::TextureFormat& format, float minLod = 0.0f, float maxLod = 1000.0f);
 
 void                                           imageUtilSelfTest                       (void);
 
index 2c3beab..31c5132 100644 (file)
@@ -22,6 +22,7 @@ add_subdirectory(rasterization)
 add_subdirectory(synchronization)
 add_subdirectory(clipping)
 add_subdirectory(fragment_ops)
+add_subdirectory(texture)
 
 include_directories(
        api
@@ -46,6 +47,7 @@ include_directories(
        synchronization
        clipping
        fragment_ops
+       texture
        )
 
 set(DEQP_VK_COMMON_SRCS
@@ -91,6 +93,7 @@ set(DEQP_VK_COMMON_LIBS
        deqp-vk-synchronization
        deqp-vk-clipping
        deqp-vk-fragment-ops
+       deqp-vk-texture
        )
 
 add_library(deqp-vk-common STATIC ${DEQP_VK_COMMON_SRCS})
index 2636258..c9720f2 100644 (file)
@@ -321,6 +321,27 @@ de::MovePtr<tcu::TextureLevel> readColorAttachment (const vk::DeviceInterface&     v
        return resultLevel;
 }
 
+namespace
+{
+
+VkImageAspectFlags getImageAspectFlags (const tcu::TextureFormat textureFormat)
+{
+       VkImageAspectFlags imageAspectFlags = 0;
+
+       if (tcu::hasDepthComponent(textureFormat.order))
+               imageAspectFlags |= VK_IMAGE_ASPECT_DEPTH_BIT;
+
+       if (tcu::hasStencilComponent(textureFormat.order))
+               imageAspectFlags |= VK_IMAGE_ASPECT_STENCIL_BIT;
+
+       if (imageAspectFlags == 0)
+               imageAspectFlags = VK_IMAGE_ASPECT_COLOR_BIT;
+
+       return imageAspectFlags;
+}
+
+} // anonymous
+
 void uploadTestTexture (const DeviceInterface&                 vk,
                                                VkDevice                                                device,
                                                VkQueue                                                 queue,
@@ -335,7 +356,7 @@ void uploadTestTexture (const DeviceInterface&                      vk,
        Move<VkCommandPool>                             cmdPool;
        Move<VkCommandBuffer>                   cmdBuffer;
        Move<VkFence>                                   fence;
-       std::vector<deUint32>                   levelDataSizes;
+       const VkImageAspectFlags                imageAspectFlags        = getImageAspectFlags(srcTexture.getTextureFormat());
 
        // Calculate buffer size
        bufferSize =  (srcTexture.isCompressed())? srcTexture.getCompressedSize(): srcTexture.getSize();
@@ -421,11 +442,11 @@ void uploadTestTexture (const DeviceInterface&                    vk,
                VK_QUEUE_FAMILY_IGNORED,                                                // deUint32                                     dstQueueFamilyIndex;
                destImage,                                                                              // VkImage                                      image;
                {                                                                                               // VkImageSubresourceRange      subresourceRange;
-                       VK_IMAGE_ASPECT_COLOR_BIT,                              // VkImageAspect        aspect;
-                       0u,                                                                             // deUint32                     baseMipLevel;
-                       (deUint32)srcTexture.getNumLevels(),    // deUint32                     mipLevels;
-                       0u,                                                                             // deUint32                     baseArraySlice;
-                       (deUint32)srcTexture.getArraySize(),    // deUint32                     arraySize;
+                       imageAspectFlags,                                               // VkImageAspectFlags   aspectMask;
+                       0u,                                                                             // deUint32                             baseMipLevel;
+                       (deUint32)srcTexture.getNumLevels(),    // deUint32                             mipLevels;
+                       0u,                                                                             // deUint32                             baseArraySlice;
+                       (deUint32)srcTexture.getArraySize(),    // deUint32                             arraySize;
                }
        };
 
@@ -441,11 +462,11 @@ void uploadTestTexture (const DeviceInterface&                    vk,
                VK_QUEUE_FAMILY_IGNORED,                                                // deUint32                                     dstQueueFamilyIndex;
                destImage,                                                                              // VkImage                                      image;
                {                                                                                               // VkImageSubresourceRange      subresourceRange;
-                       VK_IMAGE_ASPECT_COLOR_BIT,                              // VkImageAspect        aspect;
-                       0u,                                                                             // deUint32                     baseMipLevel;
-                       (deUint32)srcTexture.getNumLevels(),    // deUint32                     mipLevels;
-                       0u,                                                                             // deUint32                     baseArraySlice;
-                       (deUint32)srcTexture.getArraySize(),    // deUint32                     arraySize;
+                       imageAspectFlags,                                               // VkImageAspectFlags   aspectMask;
+                       0u,                                                                             // deUint32                             baseMipLevel;
+                       (deUint32)srcTexture.getNumLevels(),    // deUint32                             mipLevels;
+                       0u,                                                                             // deUint32                             baseArraySlice;
+                       (deUint32)srcTexture.getArraySize(),    // deUint32                             arraySize;
                }
        };
 
@@ -488,7 +509,6 @@ void uploadTestTexture (const DeviceInterface&                      vk,
        VK_CHECK(vk.waitForFences(device, 1, &fence.get(), true, ~(0ull) /* infinity */));
 }
 
-
 // Utilities for test textures
 
 template<typename TcuTextureType>
@@ -509,7 +529,6 @@ std::vector<tcu::PixelBufferAccess> getLevelsVector (const TcuTextureType& textu
        return levels;
 }
 
-
 // TestTexture
 
 TestTexture::TestTexture (const tcu::TextureFormat& format, int width, int height, int depth)
@@ -606,7 +625,7 @@ std::vector<VkBufferImageCopy> TestTexture::getBufferCopyRegions (void) const
 {
        std::vector<deUint32>                   offsetMultiples;
        std::vector<VkBufferImageCopy>  regions;
-       deUint32                                                layerDataOffset = 0;
+       deUint32                                                layerDataOffset = 0;
 
        offsetMultiples.push_back(4);
 
@@ -648,6 +667,18 @@ std::vector<VkBufferImageCopy> TestTexture::getBufferCopyRegions (void) const
        }
        else
        {
+               std::vector<VkImageAspectFlags> imageAspects;
+               tcu::TextureFormat                              textureFormat   = getTextureFormat();
+
+               if (tcu::hasDepthComponent(textureFormat.order))
+                       imageAspects.push_back(VK_IMAGE_ASPECT_DEPTH_BIT);
+
+               if (tcu::hasStencilComponent(textureFormat.order))
+                       imageAspects.push_back(VK_IMAGE_ASPECT_STENCIL_BIT);
+
+               if (imageAspects.empty())
+                       imageAspects.push_back(VK_IMAGE_ASPECT_COLOR_BIT);
+
                offsetMultiples.push_back(getLevel(0, 0).getFormat().getPixelSize());
 
                for (int levelNdx = 0; levelNdx < getNumLevels(); levelNdx++)
@@ -658,26 +689,29 @@ std::vector<VkBufferImageCopy> TestTexture::getBufferCopyRegions (void) const
 
                                layerDataOffset = getNextMultiple(offsetMultiples, layerDataOffset);
 
-                               const VkBufferImageCopy layerRegion =
+                               for (size_t aspectIndex = 0; aspectIndex < imageAspects.size(); ++aspectIndex)
                                {
-                                       layerDataOffset,                                                // VkDeviceSize                         bufferOffset;
-                                       (deUint32)level.getWidth(),                             // deUint32                                     bufferRowLength;
-                                       (deUint32)level.getHeight(),                    // deUint32                                     bufferImageHeight;
-                                       {                                                                               // VkImageSubresourceLayers     imageSubresource;
-                                               VK_IMAGE_ASPECT_COLOR_BIT,
-                                               (deUint32)levelNdx,
-                                               (deUint32)layerNdx,
-                                               1u
-                                       },
-                                       { 0u, 0u, 0u },                                                 // VkOffset3D                   imageOffset;
-                                       {                                                                               // VkExtent3D                   imageExtent;
-                                               (deUint32)level.getWidth(),
-                                               (deUint32)level.getHeight(),
-                                               (deUint32)level.getDepth()
-                                       }
-                               };
-
-                               regions.push_back(layerRegion);
+                                       const VkBufferImageCopy layerRegion =
+                                       {
+                                               layerDataOffset,                                                // VkDeviceSize                         bufferOffset;
+                                               (deUint32)level.getWidth(),                             // deUint32                                     bufferRowLength;
+                                               (deUint32)level.getHeight(),                    // deUint32                                     bufferImageHeight;
+                                               {                                                                               // VkImageSubresourceLayers     imageSubresource;
+                                                       imageAspects[aspectIndex],
+                                                       (deUint32)levelNdx,
+                                                       (deUint32)layerNdx,
+                                                       1u
+                                               },
+                                               { 0u, 0u, 0u },                                                 // VkOffset3D                   imageOffset;
+                                               {                                                                               // VkExtent3D                   imageExtent;
+                                                       (deUint32)level.getWidth(),
+                                                       (deUint32)level.getHeight(),
+                                                       (deUint32)level.getDepth()
+                                               }
+                                       };
+
+                                       regions.push_back(layerRegion);
+                               }
                                layerDataOffset += level.getWidth() * level.getHeight() * level.getDepth() * level.getFormat().getPixelSize();
                        }
                }
@@ -757,8 +791,10 @@ void TestTexture::populateCompressedLevels (tcu::CompressedTexFormat format, con
                else
                {
                        // Generate random compressed data
-                       for (int byteNdx = 0; byteNdx < compressedLevel->getDataSize(); byteNdx++)
-                               compressedData[byteNdx] = 0xFF & random.getUint32();
+                       // Random initial values cause assertion during the decompression in case of COMPRESSEDTEXFORMAT_ETC1_RGB8 format
+                       if (format != tcu::COMPRESSEDTEXFORMAT_ETC1_RGB8)
+                               for (int byteNdx = 0; byteNdx < compressedLevel->getDataSize(); byteNdx++)
+                                       compressedData[byteNdx] = 0xFF & random.getUint32();
                }
 
                m_compressedLevels.push_back(compressedLevel);
@@ -820,6 +856,10 @@ const tcu::Texture1D& TestTexture1D::getTexture (void) const
        return m_texture;
 }
 
+tcu::Texture1D& TestTexture1D::getTexture (void)
+{
+       return m_texture;
+}
 
 // TestTexture1DArray
 
@@ -877,12 +917,16 @@ const tcu::Texture1DArray& TestTexture1DArray::getTexture (void) const
        return m_texture;
 }
 
+tcu::Texture1DArray& TestTexture1DArray::getTexture (void)
+{
+       return m_texture;
+}
+
 int TestTexture1DArray::getArraySize (void) const
 {
        return m_texture.getNumLayers();
 }
 
-
 // TestTexture2D
 
 TestTexture2D::TestTexture2D (const tcu::TextureFormat& format, int width, int height)
@@ -929,6 +973,10 @@ const tcu::Texture2D& TestTexture2D::getTexture (void) const
        return m_texture;
 }
 
+tcu::Texture2D& TestTexture2D::getTexture (void)
+{
+       return m_texture;
+}
 
 // TestTexture2DArray
 
@@ -986,6 +1034,11 @@ const tcu::Texture2DArray& TestTexture2DArray::getTexture (void) const
        return m_texture;
 }
 
+tcu::Texture2DArray& TestTexture2DArray::getTexture (void)
+{
+       return m_texture;
+}
+
 int TestTexture2DArray::getArraySize (void) const
 {
        return m_texture.getNumLayers();
@@ -1038,6 +1091,10 @@ const tcu::Texture3D& TestTexture3D::getTexture (void) const
        return m_texture;
 }
 
+tcu::Texture3D& TestTexture3D::getTexture (void)
+{
+       return m_texture;
+}
 
 // TestTextureCube
 
@@ -1092,14 +1149,14 @@ int TestTextureCube::getNumLevels (void) const
        return m_texture.getNumLevels();
 }
 
-tcu::PixelBufferAccess TestTextureCube::getLevel (int level, int face)
+tcu::PixelBufferAccess TestTextureCube::getLevel (int level, int layer)
 {
-       return m_texture.getLevelFace(level, (tcu::CubeFace)face);
+       return m_texture.getLevelFace(level, tcuFaceMapping[layer]);
 }
 
-const tcu::ConstPixelBufferAccess TestTextureCube::getLevel (int level, int face) const
+const tcu::ConstPixelBufferAccess TestTextureCube::getLevel (int level, int layer) const
 {
-       return m_texture.getLevelFace(level, (tcu::CubeFace)face);
+       return m_texture.getLevelFace(level, tcuFaceMapping[layer]);
 }
 
 int TestTextureCube::getArraySize (void) const
@@ -1112,6 +1169,11 @@ const tcu::TextureCube& TestTextureCube::getTexture (void) const
        return m_texture;
 }
 
+tcu::TextureCube& TestTextureCube::getTexture (void)
+{
+       return m_texture;
+}
+
 // TestTextureCubeArray
 
 TestTextureCubeArray::TestTextureCubeArray (const tcu::TextureFormat& format, int size, int arraySize)
@@ -1175,5 +1237,10 @@ const tcu::TextureCubeArray& TestTextureCubeArray::getTexture (void) const
        return m_texture;
 }
 
+tcu::TextureCubeArray& TestTextureCubeArray::getTexture (void)
+{
+       return m_texture;
+}
+
 } // pipeline
 } // vkt
index c52c380..5d9fc66 100644 (file)
@@ -112,6 +112,9 @@ public:
        virtual std::vector<vk::VkBufferImageCopy>      getBufferCopyRegions            (void) const;
        virtual void                                                            write                                           (deUint8* destPtr) const;
 
+       virtual const tcu::TextureFormat&                       getTextureFormat                        (void) const = 0;
+       virtual tcu::UVec3                                                      getTextureDimension                     (void) const = 0;
+
 protected:
        void                                                                            populateLevels                          (const std::vector<tcu::PixelBufferAccess>& levels);
        void                                                                            populateCompressedLevels        (tcu::CompressedTexFormat format, const std::vector<tcu::PixelBufferAccess>& decompressedLevels);
@@ -128,14 +131,17 @@ private:
        tcu::Texture1D                                                          m_texture;
 
 public:
-                                                                                               TestTexture1D   (const tcu::TextureFormat& format, int width);
-                                                                                               TestTexture1D   (const tcu::CompressedTexFormat& format, int width);
-       virtual                                                                         ~TestTexture1D  (void);
+                                                                                               TestTexture1D           (const tcu::TextureFormat& format, int width);
+                                                                                               TestTexture1D           (const tcu::CompressedTexFormat& format, int width);
+       virtual                                                                         ~TestTexture1D          (void);
 
        virtual int getNumLevels (void) const;
-       virtual tcu::PixelBufferAccess                          getLevel                (int level, int layer);
-       virtual const tcu::ConstPixelBufferAccess       getLevel                (int level, int layer) const;
-       virtual const tcu::Texture1D&                           getTexture              (void) const;
+       virtual tcu::PixelBufferAccess                          getLevel                        (int level, int layer);
+       virtual const tcu::ConstPixelBufferAccess       getLevel                        (int level, int layer) const;
+       virtual const tcu::Texture1D&                           getTexture                      (void) const;
+       virtual tcu::Texture1D&                                         getTexture                      (void);
+       virtual const tcu::TextureFormat&                       getTextureFormat        (void) const { return m_texture.getFormat(); }
+       virtual tcu::UVec3                                                      getTextureDimension     (void) const { return tcu::UVec3(m_texture.getWidth(), 1, 1); }
 };
 
 class TestTexture1DArray : public TestTexture
@@ -152,7 +158,10 @@ public:
        virtual tcu::PixelBufferAccess                          getLevel                        (int level, int layer);
        virtual const tcu::ConstPixelBufferAccess       getLevel                        (int level, int layer) const;
        virtual const tcu::Texture1DArray&                      getTexture                      (void) const;
+       virtual tcu::Texture1DArray&                            getTexture                      (void);
        virtual int                                                                     getArraySize            (void) const;
+       virtual const tcu::TextureFormat&                       getTextureFormat        (void) const { return m_texture.getFormat(); }
+       virtual tcu::UVec3                                                      getTextureDimension     (void) const { return tcu::UVec3(m_texture.getWidth(), 1, 1); }
 };
 
 class TestTexture2D : public TestTexture
@@ -169,6 +178,9 @@ public:
        virtual tcu::PixelBufferAccess                          getLevel                        (int level, int layer);
        virtual const tcu::ConstPixelBufferAccess       getLevel                        (int level, int layer) const;
        virtual const tcu::Texture2D&                           getTexture                      (void) const;
+       virtual tcu::Texture2D&                                         getTexture                      (void);
+       virtual const tcu::TextureFormat&                       getTextureFormat        (void) const { return m_texture.getFormat(); }
+       virtual tcu::UVec3                                                      getTextureDimension     (void) const { return tcu::UVec3(m_texture.getWidth(), m_texture.getHeight(), 1); }
 };
 
 class TestTexture2DArray : public TestTexture
@@ -185,7 +197,10 @@ public:
        virtual tcu::PixelBufferAccess                          getLevel                        (int level, int layer);
        virtual const tcu::ConstPixelBufferAccess       getLevel                        (int level, int layer) const;
        virtual const tcu::Texture2DArray&                      getTexture                      (void) const;
+       virtual tcu::Texture2DArray&                            getTexture                      (void);
        virtual int                                                                     getArraySize            (void) const;
+       virtual const tcu::TextureFormat&                       getTextureFormat        (void) const { return m_texture.getFormat(); }
+       virtual tcu::UVec3                                                      getTextureDimension     (void) const { return tcu::UVec3(m_texture.getWidth(), m_texture.getHeight(), 1); }
 };
 
 class TestTexture3D : public TestTexture
@@ -202,6 +217,9 @@ public:
        virtual tcu::PixelBufferAccess                          getLevel                        (int level, int layer);
        virtual const tcu::ConstPixelBufferAccess       getLevel                        (int level, int layer) const;
        virtual const tcu::Texture3D&                           getTexture                      (void) const;
+       virtual tcu::Texture3D&                                         getTexture                      (void);
+       virtual const tcu::TextureFormat&                       getTextureFormat        (void) const { return m_texture.getFormat(); }
+       virtual tcu::UVec3                                                      getTextureDimension     (void) const { return tcu::UVec3(m_texture.getWidth(), m_texture.getHeight(), m_texture.getDepth()); }
 };
 
 class TestTextureCube : public TestTexture
@@ -219,6 +237,9 @@ public:
        virtual const tcu::ConstPixelBufferAccess       getLevel                                (int level, int layer) const;
        virtual int                                                                     getArraySize                    (void) const;
        virtual const tcu::TextureCube&                         getTexture                              (void) const;
+       virtual tcu::TextureCube&                                       getTexture                              (void);
+       virtual const tcu::TextureFormat&                       getTextureFormat                (void) const { return m_texture.getFormat(); }
+       virtual tcu::UVec3                                                      getTextureDimension             (void) const { return tcu::UVec3(m_texture.getSize(), m_texture.getSize(), 1); }
 };
 
 class TestTextureCubeArray: public TestTexture
@@ -236,6 +257,9 @@ public:
        virtual const tcu::ConstPixelBufferAccess       getLevel                                (int level, int layer) const;
        virtual int                                                                     getArraySize                    (void) const;
        virtual const tcu::TextureCubeArray&            getTexture                              (void) const;
+       virtual tcu::TextureCubeArray&                          getTexture                              (void);
+       virtual const tcu::TextureFormat&                       getTextureFormat                (void) const { return m_texture.getFormat(); }
+       virtual tcu::UVec3                                                      getTextureDimension             (void) const { return tcu::UVec3(m_texture.getSize(), m_texture.getSize(), 1); }
 };
 
 } // pipeline
diff --git a/external/vulkancts/modules/vulkan/texture/CMakeLists.txt b/external/vulkancts/modules/vulkan/texture/CMakeLists.txt
new file mode 100644 (file)
index 0000000..530b74e
--- /dev/null
@@ -0,0 +1,19 @@
+include_directories(..)
+
+set(DEQP_VK_TEXTURE_SRCS
+       vktTextureTests.cpp
+       vktTextureTests.hpp
+       vktTextureTestUtil.cpp
+       vktTextureTestUtil.hpp
+       vktTextureFilteringTests.cpp
+       vktTextureFilteringTests.hpp
+       )
+
+set(DEQP_VK_TEXTURE_LIBS
+       deqp-vk-common
+       tcutil
+       vkutil
+       )
+
+add_library(deqp-vk-texture STATIC ${DEQP_VK_TEXTURE_SRCS})
+target_link_libraries(deqp-vk-texture ${DEQP_VK_TEXTURE_LIBS})
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp
new file mode 100644 (file)
index 0000000..dccce3d
--- /dev/null
@@ -0,0 +1,1417 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Texture filtering tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuVectorUtil.hpp"
+#include "tcuTexVerifierUtil.hpp"
+#include "vkImageUtil.hpp"
+#include "vkMemUtil.hpp"
+#include "vkPrograms.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkRefUtil.hpp"
+#include "vktTestCase.hpp"
+#include "vktTestCaseUtil.hpp"
+#include "vktTextureFilteringTests.hpp"
+#include "vktTextureTestUtil.hpp"
+#include <string>
+#include <vector>
+
+using namespace vk;
+
+namespace vkt
+{
+namespace texture
+{
+
+namespace
+{
+
+using std::vector;
+using std::string;
+using tcu::TestLog;
+using tcu::Sampler;
+
+using namespace texture::util;
+using namespace glu::TextureTestUtil;
+
+enum
+{
+       TEXCUBE_VIEWPORT_SIZE           = 28,
+
+       TEX2D_VIEWPORT_WIDTH            = 64,
+       TEX2D_VIEWPORT_HEIGHT           = 64,
+
+       TEX3D_VIEWPORT_WIDTH            = 64,
+       TEX3D_VIEWPORT_HEIGHT           = 64,
+};
+
+class Texture2DFilteringTestInstance : public TestInstance
+{
+public:
+       typedef Texture2DTestCaseParameters     ParameterType;
+
+                                                                               Texture2DFilteringTestInstance          (Context& context, const ParameterType& testParameters);
+                                                                               ~Texture2DFilteringTestInstance         (void);
+
+       virtual tcu::TestStatus                         iterate                                                         (void);
+private:
+                                                                               Texture2DFilteringTestInstance          (const Texture2DFilteringTestInstance& other);
+       Texture2DFilteringTestInstance&         operator=                                                       (const Texture2DFilteringTestInstance& other);
+
+       struct FilterCase
+       {
+               int                                             textureIndex;
+
+               tcu::Vec2                               minCoord;
+               tcu::Vec2                               maxCoord;
+
+               FilterCase (void)
+                       : textureIndex(-1)
+               {
+               }
+
+               FilterCase (int tex_, const tcu::Vec2& minCoord_, const tcu::Vec2& maxCoord_)
+                       : textureIndex  (tex_)
+                       , minCoord              (minCoord_)
+                       , maxCoord              (maxCoord_)
+               {
+               }
+       };
+
+       const ParameterType                     m_testParameters;
+       vector<TestTexture2DSp>         m_textures;
+       vector<FilterCase>                      m_cases;
+       TextureRenderer                         m_renderer;
+       int                                                     m_caseNdx;
+};
+
+Texture2DFilteringTestInstance::Texture2DFilteringTestInstance (Context& context, const ParameterType& testParameters)
+       : TestInstance                  (context)
+       , m_testParameters              (testParameters)
+       , m_renderer                    (context, testParameters.sampleCount, TEX2D_VIEWPORT_WIDTH, TEX2D_VIEWPORT_HEIGHT)
+       , m_caseNdx                             (0)
+{
+       const bool                                              mipmaps         = true;
+       const int                                               numLevels       = mipmaps ? deLog2Floor32(de::max(m_testParameters.width, m_testParameters.height))+1 : 1;
+       const tcu::TextureFormatInfo    fmtInfo         = tcu::getTextureFormatInfo(vk::mapVkFormat(m_testParameters.format));
+       const tcu::Vec4                                 cBias           = fmtInfo.valueMin;
+       const tcu::Vec4                                 cScale          = fmtInfo.valueMax-fmtInfo.valueMin;
+
+       // Create 2 textures.
+       m_textures.reserve(2);
+       for (int ndx = 0; ndx < 2; ndx++)
+               m_textures.push_back(TestTexture2DSp(new pipeline::TestTexture2D(vk::mapVkFormat(m_testParameters.format), m_testParameters.width, m_testParameters.height)));
+
+       // Fill first gradient texture.
+       for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
+       {
+               const tcu::Vec4 gMin = tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f)*cScale + cBias;
+               const tcu::Vec4 gMax = tcu::Vec4(1.0f, 1.0f, 1.0f, 0.0f)*cScale + cBias;
+
+               tcu::fillWithComponentGradients(m_textures[0]->getLevel(levelNdx, 0), gMin, gMax);
+       }
+
+       // Fill second with grid texture.
+       for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
+       {
+               const deUint32  step    = 0x00ffffff / numLevels;
+               const deUint32  rgb             = step*levelNdx;
+               const deUint32  colorA  = 0xff000000 | rgb;
+               const deUint32  colorB  = 0xff000000 | ~rgb;
+
+               tcu::fillWithGrid(m_textures[1]->getLevel(levelNdx, 0), 4, tcu::RGBA(colorA).toVec()*cScale + cBias, tcu::RGBA(colorB).toVec()*cScale + cBias);
+       }
+
+       // Upload.
+       for (vector<TestTexture2DSp>::iterator i = m_textures.begin(); i != m_textures.end(); i++)
+       {
+               m_renderer.add2DTexture(*i);
+       }
+
+       // Compute cases.
+       {
+               const struct
+               {
+                       const int               texNdx;
+                       const float             lodX;
+                       const float             lodY;
+                       const float             oX;
+                       const float             oY;
+               } cases[] =
+               {
+                       { 0,    1.6f,   2.9f,   -1.0f,  -2.7f   },
+                       { 0,    -2.0f,  -1.35f, -0.2f,  0.7f    },
+                       { 1,    0.14f,  0.275f, -1.5f,  -1.1f   },
+                       { 1,    -0.92f, -2.64f, 0.4f,   -0.1f   },
+               };
+
+               for (int caseNdx = 0; caseNdx < DE_LENGTH_OF_ARRAY(cases); caseNdx++)
+               {
+                       const int       texNdx  = de::clamp(cases[caseNdx].texNdx, 0, (int)m_textures.size()-1);
+                       const float     lodX    = cases[caseNdx].lodX;
+                       const float     lodY    = cases[caseNdx].lodY;
+                       const float     oX              = cases[caseNdx].oX;
+                       const float     oY              = cases[caseNdx].oY;
+                       const float     sX              = deFloatExp2(lodX) * float(m_renderer.getRenderWidth()) / float(m_textures[texNdx]->getTexture().getWidth());
+                       const float     sY              = deFloatExp2(lodY) * float(m_renderer.getRenderHeight()) / float(m_textures[texNdx]->getTexture().getHeight());
+
+                       m_cases.push_back(FilterCase(texNdx, tcu::Vec2(oX, oY), tcu::Vec2(oX+sX, oY+sY)));
+               }
+       }
+}
+
+Texture2DFilteringTestInstance::~Texture2DFilteringTestInstance (void)
+{
+}
+
+tcu::TestStatus Texture2DFilteringTestInstance::iterate (void)
+{
+       tcu::TestLog&                                   log                     = m_context.getTestContext().getLog();
+
+       const pipeline::TestTexture2D&  texture         = m_renderer.get2DTexture(m_cases[m_caseNdx].textureIndex);
+       const tcu::TextureFormat                texFmt          = texture.getTextureFormat();
+       const tcu::TextureFormatInfo    fmtInfo         = tcu::getTextureFormatInfo(texFmt);
+       const FilterCase&                               curCase         = m_cases[m_caseNdx];
+       ReferenceParams                                 refParams       (TEXTURETYPE_2D);
+       tcu::Surface                                    rendered        (m_renderer.getRenderWidth(), m_renderer.getRenderHeight());
+       vector<float>                                   texCoord;
+
+       // Setup params for reference.
+
+       refParams.sampler               = util::createSampler(m_testParameters.wrapS, m_testParameters.wrapT, m_testParameters.minFilter, m_testParameters.magFilter);
+       refParams.samplerType   = getSamplerType(texFmt);
+       refParams.lodMode               = LODMODE_EXACT;
+       refParams.colorBias             = fmtInfo.lookupBias;
+       refParams.colorScale    = fmtInfo.lookupScale;
+
+       // Compute texture coordinates.
+       log << TestLog::Message << "Texture coordinates: " << curCase.minCoord << " -> " << curCase.maxCoord << TestLog::EndMessage;
+       computeQuadTexCoord2D(texCoord, curCase.minCoord, curCase.maxCoord);
+
+       m_renderer.renderQuad(rendered, curCase.textureIndex, &texCoord[0], refParams);
+
+       {
+               const bool                              isNearestOnly   = m_testParameters.minFilter == Sampler::NEAREST && m_testParameters.magFilter == Sampler::NEAREST;
+               const tcu::IVec4                formatBitDepth  = getTextureFormatBitDepth(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
+               const tcu::PixelFormat  pixelFormat             (formatBitDepth[0], formatBitDepth[1], formatBitDepth[2], formatBitDepth[3]);
+               const tcu::IVec4                colorBits               = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
+               tcu::LodPrecision               lodPrecision;
+               tcu::LookupPrecision    lookupPrecision;
+
+               lodPrecision.derivateBits               = 18;
+               lodPrecision.lodBits                    = 6;
+               lookupPrecision.colorThreshold  = tcu::computeFixedPointThreshold(colorBits) / refParams.colorScale;
+               lookupPrecision.coordBits               = tcu::IVec3(20,20,0);
+               lookupPrecision.uvwBits                 = tcu::IVec3(7,7,0);
+               lookupPrecision.colorMask               = getCompareMask(pixelFormat);
+
+               const bool isHighQuality = verifyTextureResult(m_context.getTestContext(), rendered.getAccess(), (tcu::Texture2DView)texture.getTexture(),
+                                                                                                          &texCoord[0], refParams, lookupPrecision, lodPrecision, pixelFormat);
+
+               if (!isHighQuality)
+               {
+                       // Evaluate against lower precision requirements.
+                       lodPrecision.lodBits    = 4;
+                       lookupPrecision.uvwBits = tcu::IVec3(4,4,0);
+
+                       log << TestLog::Message << "Warning: Verification against high precision requirements failed, trying with lower requirements." << TestLog::EndMessage;
+
+                       const bool isOk = verifyTextureResult(m_context.getTestContext(), rendered.getAccess(), (tcu::Texture2DView)texture.getTexture(),
+                                                                                                 &texCoord[0], refParams, lookupPrecision, lodPrecision, pixelFormat);
+
+                       if (!isOk)
+                       {
+                               log << TestLog::Message << "ERROR: Verification against low precision requirements failed, failing test case." << TestLog::EndMessage;
+                               return tcu::TestStatus::fail("Image verification failed");
+                       }
+               }
+       }
+
+       m_caseNdx += 1;
+       return m_caseNdx < (int)m_cases.size() ? tcu::TestStatus::incomplete() : tcu::TestStatus::pass("Pass");
+}
+
+struct TextureCubeFilteringTestCaseParameters : public TextureCubeTestCaseParameters
+{
+       bool    onlySampleFaceInterior;
+};
+
+class TextureCubeFilteringTestInstance : public TestInstance
+{
+public:
+       typedef TextureCubeFilteringTestCaseParameters  ParameterType;
+
+                                                                                                       TextureCubeFilteringTestInstance        (Context& context, const ParameterType& testParameters);
+                                                                                                       ~TextureCubeFilteringTestInstance       (void);
+
+       virtual tcu::TestStatus                                                 iterate                                                         (void);
+
+private:
+                                                                                                       TextureCubeFilteringTestInstance        (const TextureCubeFilteringTestInstance& other);
+       TextureCubeFilteringTestInstance&                               operator=                                                       (const TextureCubeFilteringTestInstance& other);
+
+       struct FilterCase
+       {
+               int                                             textureIndex;
+               tcu::Vec2                               bottomLeft;
+               tcu::Vec2                               topRight;
+
+               FilterCase (void)
+                       : textureIndex(-1)
+               {
+               }
+
+               FilterCase (int tex_, const tcu::Vec2& bottomLeft_, const tcu::Vec2& topRight_)
+                       : textureIndex  (tex_)
+                       , bottomLeft    (bottomLeft_)
+                       , topRight              (topRight_)
+               {
+               }
+       };
+
+       const ParameterType                     m_testParameters;
+       vector<TestTextureCubeSp>       m_textures;
+       vector<FilterCase>                      m_cases;
+       TextureRenderer                         m_renderer;
+       int                                                     m_caseNdx;
+};
+
+TextureCubeFilteringTestInstance::TextureCubeFilteringTestInstance (Context& context, const ParameterType& testParameters)
+       : TestInstance                  (context)
+       , m_testParameters              (testParameters)
+       , m_renderer                    (context, testParameters.sampleCount, TEXCUBE_VIEWPORT_SIZE, TEXCUBE_VIEWPORT_SIZE)
+       , m_caseNdx                             (0)
+{
+       const int                                               numLevels       = deLog2Floor32(m_testParameters.size)+1;
+       const tcu::TextureFormatInfo    fmtInfo         = tcu::getTextureFormatInfo(vk::mapVkFormat(m_testParameters.format));
+       const tcu::Vec4                                 cBias           = fmtInfo.valueMin;
+       const tcu::Vec4                                 cScale          = fmtInfo.valueMax-fmtInfo.valueMin;
+
+       m_textures.reserve(2);
+       for (int ndx = 0; ndx < 2; ndx++)
+               m_textures.push_back(TestTextureCubeSp(new pipeline::TestTextureCube(vk::mapVkFormat(m_testParameters.format), m_testParameters.size)));
+
+       // Fill first with gradient texture.
+       static const tcu::Vec4 gradients[tcu::CUBEFACE_LAST][2] =
+       {
+               { tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 1.0f, 1.0f, 0.0f) }, // negative x
+               { tcu::Vec4(0.5f, 0.0f, 0.0f, 1.0f), tcu::Vec4(1.0f, 1.0f, 1.0f, 0.0f) }, // positive x
+               { tcu::Vec4(0.0f, 0.5f, 0.0f, 1.0f), tcu::Vec4(1.0f, 1.0f, 1.0f, 0.0f) }, // negative y
+               { tcu::Vec4(0.0f, 0.0f, 0.5f, 1.0f), tcu::Vec4(1.0f, 1.0f, 1.0f, 0.0f) }, // positive y
+               { tcu::Vec4(0.0f, 0.0f, 0.0f, 0.5f), tcu::Vec4(1.0f, 1.0f, 1.0f, 1.0f) }, // negative z
+               { tcu::Vec4(0.5f, 0.5f, 0.5f, 1.0f), tcu::Vec4(1.0f, 1.0f, 1.0f, 0.0f) }  // positive z
+       };
+
+       for (int face = 0; face < tcu::CUBEFACE_LAST; face++)
+       {
+               for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
+               {
+                       tcu::fillWithComponentGradients(m_textures[0]->getLevel(levelNdx, face), gradients[face][0]*cScale + cBias, gradients[face][1]*cScale + cBias);
+               }
+       }
+
+       // Fill second with grid texture.
+       for (int face = 0; face < tcu::CUBEFACE_LAST; face++)
+       {
+               for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
+               {
+                       const deUint32  step    = 0x00ffffff / (numLevels*tcu::CUBEFACE_LAST);
+                       const deUint32  rgb             = step*levelNdx*face;
+                       const deUint32  colorA  = 0xff000000 | rgb;
+                       const deUint32  colorB  = 0xff000000 | ~rgb;
+
+                       tcu::fillWithGrid(m_textures[1]->getLevel(levelNdx, face), 4, tcu::RGBA(colorA).toVec()*cScale + cBias, tcu::RGBA(colorB).toVec()*cScale + cBias);
+               }
+       }
+
+       // Upload.
+       for (vector<TestTextureCubeSp>::iterator i = m_textures.begin(); i != m_textures.end(); i++)
+       {
+               m_renderer.addCubeTexture(*i);
+       }
+
+       // Compute cases
+       {
+               const int tex0  = 0;
+               const int tex1  = m_textures.size() > 1 ? 1 : 0;
+
+               if (m_testParameters.onlySampleFaceInterior)
+               {
+                       m_cases.push_back(FilterCase(tex0, tcu::Vec2(-0.8f, -0.8f), tcu::Vec2(0.8f,  0.8f)));   // minification
+                       m_cases.push_back(FilterCase(tex0, tcu::Vec2(0.5f, 0.65f), tcu::Vec2(0.8f,  0.8f)));    // magnification
+                       m_cases.push_back(FilterCase(tex1, tcu::Vec2(-0.8f, -0.8f), tcu::Vec2(0.8f,  0.8f)));   // minification
+                       m_cases.push_back(FilterCase(tex1, tcu::Vec2(0.2f, 0.2f), tcu::Vec2(0.6f,  0.5f)));             // magnification
+               }
+               else
+               {
+                       m_cases.push_back(FilterCase(tex0, tcu::Vec2(-1.25f, -1.2f), tcu::Vec2(1.2f, 1.25f)));  // minification
+
+                       m_cases.push_back(FilterCase(tex0, tcu::Vec2(0.8f, 0.8f), tcu::Vec2(1.25f, 1.20f)));    // magnification
+                       m_cases.push_back(FilterCase(tex1, tcu::Vec2(-1.19f, -1.3f), tcu::Vec2(1.1f, 1.35f)));  // minification
+                       m_cases.push_back(FilterCase(tex1, tcu::Vec2(-1.2f, -1.1f), tcu::Vec2(-0.8f, -0.8f)));  // magnification
+               }
+       }
+}
+
+TextureCubeFilteringTestInstance::~TextureCubeFilteringTestInstance (void)
+{
+}
+
+const char* getFaceDesc (const tcu::CubeFace face)
+{
+       switch (face)
+       {
+               case tcu::CUBEFACE_NEGATIVE_X:  return "-X";
+               case tcu::CUBEFACE_POSITIVE_X:  return "+X";
+               case tcu::CUBEFACE_NEGATIVE_Y:  return "-Y";
+               case tcu::CUBEFACE_POSITIVE_Y:  return "+Y";
+               case tcu::CUBEFACE_NEGATIVE_Z:  return "-Z";
+               case tcu::CUBEFACE_POSITIVE_Z:  return "+Z";
+               default:
+                       DE_ASSERT(false);
+                       return DE_NULL;
+       }
+}
+
+tcu::TestStatus TextureCubeFilteringTestInstance::iterate (void)
+{
+       tcu::TestLog&                                           log                     = m_context.getTestContext().getLog();
+
+       const pipeline::TestTextureCube&        texture         = m_renderer.getCubeTexture(m_cases[m_caseNdx].textureIndex);
+       const tcu::TextureFormat                        texFmt          = texture.getTextureFormat();
+       const tcu::TextureFormatInfo            fmtInfo         = tcu::getTextureFormatInfo(texFmt);
+       const FilterCase&                                       curCase         = m_cases[m_caseNdx];
+       ReferenceParams                                         refParams       (TEXTURETYPE_CUBE);
+
+       // Params for reference computation.
+       refParams.sampler                                       = util::createSampler(Sampler::CLAMP_TO_EDGE, Sampler::CLAMP_TO_EDGE, m_testParameters.minFilter, m_testParameters.magFilter);
+       refParams.sampler.seamlessCubeMap       = true;
+       refParams.samplerType                           = getSamplerType(texFmt);
+       refParams.lodMode                                       = LODMODE_EXACT;
+       refParams.colorBias                                     = fmtInfo.lookupBias;
+       refParams.colorScale                            = fmtInfo.lookupScale;
+
+       log << TestLog::Message << "Coordinates: " << curCase.bottomLeft << " -> " << curCase.topRight << TestLog::EndMessage;
+
+       for (int faceNdx = 0; faceNdx < tcu::CUBEFACE_LAST; faceNdx++)
+       {
+               const tcu::CubeFace             face            = tcu::CubeFace(faceNdx);
+               tcu::Surface                    rendered        (m_renderer.getRenderWidth(), m_renderer.getRenderHeight());
+               vector<float>                   texCoord;
+
+               computeQuadTexCoordCube(texCoord, face, curCase.bottomLeft, curCase.topRight);
+
+               log << TestLog::Message << "Face " << getFaceDesc(face) << TestLog::EndMessage;
+
+               // \todo Log texture coordinates.
+
+               m_renderer.renderQuad(rendered, curCase.textureIndex, &texCoord[0], refParams);
+
+               {
+                       const bool                              isNearestOnly   = m_testParameters.minFilter == Sampler::NEAREST && m_testParameters.magFilter == Sampler::NEAREST;
+                       const tcu::IVec4                formatBitDepth  = getTextureFormatBitDepth(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
+                       const tcu::PixelFormat  pixelFormat             (formatBitDepth[0], formatBitDepth[1], formatBitDepth[2], formatBitDepth[3]);
+                       const tcu::IVec4                colorBits               = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
+                       tcu::LodPrecision               lodPrecision;
+                       tcu::LookupPrecision    lookupPrecision;
+
+                       lodPrecision.derivateBits               = 10;
+                       lodPrecision.lodBits                    = 5;
+                       lookupPrecision.colorThreshold  = tcu::computeFixedPointThreshold(colorBits) / refParams.colorScale;
+                       lookupPrecision.coordBits               = tcu::IVec3(10,10,10);
+                       lookupPrecision.uvwBits                 = tcu::IVec3(6,6,0);
+                       lookupPrecision.colorMask               = getCompareMask(pixelFormat);
+
+                       const bool isHighQuality = verifyTextureResult(m_context.getTestContext(), rendered.getAccess(), (tcu::TextureCubeView)texture.getTexture(),
+                                                                                                                  &texCoord[0], refParams, lookupPrecision, lodPrecision, pixelFormat);
+
+                       if (!isHighQuality)
+                       {
+                               // Evaluate against lower precision requirements.
+                               lodPrecision.lodBits    = 4;
+                               lookupPrecision.uvwBits = tcu::IVec3(4,4,0);
+
+                               log << TestLog::Message << "Warning: Verification against high precision requirements failed, trying with lower requirements." << TestLog::EndMessage;
+
+                               const bool isOk = verifyTextureResult(m_context.getTestContext(), rendered.getAccess(), (tcu::TextureCubeView)texture.getTexture(),
+                                                                                                         &texCoord[0], refParams, lookupPrecision, lodPrecision, pixelFormat);
+
+                               if (!isOk)
+                               {
+                                       log << TestLog::Message << "ERROR: Verification against low precision requirements failed, failing test case." << TestLog::EndMessage;
+                                       return tcu::TestStatus::fail("Image verification failed");
+                               }
+                       }
+               }
+       }
+
+       m_caseNdx += 1;
+       return m_caseNdx < (int)m_cases.size() ? tcu::TestStatus::incomplete() : tcu::TestStatus::pass("Pass");
+}
+
+// 2D array filtering
+
+class Texture2DArrayFilteringTestInstance : public TestInstance
+{
+public:
+       typedef Texture2DArrayTestCaseParameters        ParameterType;
+
+                                                                                               Texture2DArrayFilteringTestInstance             (Context& context, const ParameterType& testParameters);
+                                                                                               ~Texture2DArrayFilteringTestInstance    (void);
+
+       virtual tcu::TestStatus                                         iterate                                                                 (void);
+
+private:
+                                                                                               Texture2DArrayFilteringTestInstance             (const Texture2DArrayFilteringTestInstance&);
+       Texture2DArrayFilteringTestInstance&            operator=                                                               (const Texture2DArrayFilteringTestInstance&);
+
+       struct FilterCase
+       {
+               int                                                     textureIndex;
+               tcu::Vec2                                       lod;
+               tcu::Vec2                                       offset;
+               tcu::Vec2                                       layerRange;
+
+               FilterCase (void)
+                       : textureIndex(-1)
+               {
+               }
+
+               FilterCase (const int tex_, const tcu::Vec2& lod_, const tcu::Vec2& offset_, const tcu::Vec2& layerRange_)
+                       : textureIndex  (tex_)
+                       , lod                   (lod_)
+                       , offset                (offset_)
+                       , layerRange    (layerRange_)
+               {
+               }
+       };
+
+       const ParameterType                             m_testParameters;
+       vector<TestTexture2DArraySp>    m_textures;
+       vector<FilterCase>                              m_cases;
+       TextureRenderer                                 m_renderer;
+       int                                                             m_caseNdx;
+};
+
+Texture2DArrayFilteringTestInstance::Texture2DArrayFilteringTestInstance (Context& context, const ParameterType& testParameters)
+       : TestInstance                  (context)
+       , m_testParameters              (testParameters)
+       , m_renderer                    (context, testParameters.sampleCount, TEX3D_VIEWPORT_WIDTH, TEX3D_VIEWPORT_HEIGHT)
+       , m_caseNdx                             (0)
+{
+       const tcu::TextureFormatInfo    fmtInfo         = tcu::getTextureFormatInfo(vk::mapVkFormat(m_testParameters.format));
+       const tcu::Vec4                                 cScale          = fmtInfo.valueMax-fmtInfo.valueMin;
+       const tcu::Vec4                                 cBias           = fmtInfo.valueMin;
+       const int                                               numLevels       = deLog2Floor32(de::max(m_testParameters.width, m_testParameters.height)) + 1;
+
+       // Create textures.
+       m_textures.reserve(2);
+       for (int ndx = 0; ndx < 2; ndx++)
+               m_textures.push_back(TestTexture2DArraySp(new pipeline::TestTexture2DArray(vk::mapVkFormat(m_testParameters.format), m_testParameters.width, m_testParameters.height, m_testParameters.numLayers)));
+
+       const tcu::IVec4 levelSwz[] =
+       {
+               tcu::IVec4(0,1,2,3),
+               tcu::IVec4(2,1,3,0),
+               tcu::IVec4(3,0,1,2),
+               tcu::IVec4(1,3,2,0),
+       };
+
+       // Fill first gradient texture (gradient direction varies between layers).
+       for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
+       {
+               for (int layerNdx = 0; layerNdx < m_testParameters.numLayers; layerNdx++)
+               {
+                       const tcu::PixelBufferAccess levelBuf = m_textures[0]->getLevel(levelNdx, layerNdx);
+
+                       const tcu::IVec4        swz             = levelSwz[layerNdx%DE_LENGTH_OF_ARRAY(levelSwz)];
+                       const tcu::Vec4         gMin    = tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f).swizzle(swz[0],swz[1],swz[2],swz[3])*cScale + cBias;
+                       const tcu::Vec4         gMax    = tcu::Vec4(1.0f, 1.0f, 1.0f, 0.0f).swizzle(swz[0],swz[1],swz[2],swz[3])*cScale + cBias;
+
+                       tcu::fillWithComponentGradients(levelBuf, gMin, gMax);
+               }
+       }
+
+       // Fill second with grid texture (each layer has unique colors).
+       for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
+       {
+               for (int layerNdx = 0; layerNdx < m_testParameters.numLayers; layerNdx++)
+               {
+                       const tcu::PixelBufferAccess levelBuf = m_textures[1]->getLevel(levelNdx, layerNdx);
+
+                       const deUint32  step    = 0x00ffffff / (numLevels*m_testParameters.numLayers - 1);
+                       const deUint32  rgb             = step * (levelNdx + layerNdx*numLevels);
+                       const deUint32  colorA  = 0xff000000 | rgb;
+                       const deUint32  colorB  = 0xff000000 | ~rgb;
+
+                       tcu::fillWithGrid(levelBuf, 4, tcu::RGBA(colorA).toVec()*cScale + cBias, tcu::RGBA(colorB).toVec()*cScale + cBias);
+               }
+       }
+
+       // Upload.
+       for (vector<TestTexture2DArraySp>::const_iterator i = m_textures.begin(); i != m_textures.end(); i++)
+       {
+               m_renderer.add2DArrayTexture(*i);
+       }
+
+       // Test cases
+       m_cases.push_back(FilterCase(0, tcu::Vec2( 1.5f,  2.8f  ),      tcu::Vec2(-1.0f, -2.7f), tcu::Vec2(-0.5f, float(m_testParameters.numLayers)+0.5f)));
+       m_cases.push_back(FilterCase(1, tcu::Vec2( 0.2f,  0.175f),      tcu::Vec2(-2.0f, -3.7f), tcu::Vec2(-0.5f, float(m_testParameters.numLayers)+0.5f)));
+       m_cases.push_back(FilterCase(1, tcu::Vec2(-0.8f, -2.3f  ),      tcu::Vec2( 0.2f, -0.1f), tcu::Vec2(float(m_testParameters.numLayers)+0.5f, -0.5f)));
+       m_cases.push_back(FilterCase(0, tcu::Vec2(-2.0f, -1.5f  ),      tcu::Vec2(-0.1f,  0.9f), tcu::Vec2(1.50001f, 1.49999f)));
+}
+
+Texture2DArrayFilteringTestInstance::~Texture2DArrayFilteringTestInstance (void)
+{
+}
+
+tcu::TestStatus Texture2DArrayFilteringTestInstance::iterate (void)
+{
+       tcu::TestLog&                                           log                     = m_context.getTestContext().getLog();
+
+       const FilterCase&                                       curCase         = m_cases[m_caseNdx];
+       const pipeline::TestTexture2DArray&     texture         = m_renderer.get2DArrayTexture(curCase.textureIndex);
+       const tcu::TextureFormat                        texFmt          = texture.getTextureFormat();
+       const tcu::TextureFormatInfo            fmtInfo         = tcu::getTextureFormatInfo(texFmt);
+       ReferenceParams                                         refParams       (TEXTURETYPE_2D_ARRAY);
+       tcu::Surface                                            rendered        (m_renderer.getRenderWidth(), m_renderer.getRenderHeight());
+       tcu::Vec3                                                       texCoord[4];
+       const float* const                                      texCoordPtr     = (const float*)&texCoord[0];
+
+       // Params for reference computation.
+
+       refParams.sampler               = util::createSampler(m_testParameters.wrapS, m_testParameters.wrapT, m_testParameters.minFilter, m_testParameters.magFilter);
+       refParams.samplerType   = getSamplerType(texFmt);
+       refParams.lodMode               = LODMODE_EXACT;
+       refParams.colorBias             = fmtInfo.lookupBias;
+       refParams.colorScale    = fmtInfo.lookupScale;
+
+       // Compute texture coordinates.
+       log << TestLog::Message << "Approximate lod per axis = " << curCase.lod << ", offset = " << curCase.offset << TestLog::EndMessage;
+
+       {
+               const float     lodX    = curCase.lod.x();
+               const float     lodY    = curCase.lod.y();
+               const float     oX              = curCase.offset.x();
+               const float     oY              = curCase.offset.y();
+               const float     sX              = deFloatExp2(lodX) * float(m_renderer.getRenderWidth()) / float(m_textures[0]->getTexture().getWidth());
+               const float     sY              = deFloatExp2(lodY) * float(m_renderer.getRenderHeight()) / float(m_textures[0]->getTexture().getHeight());
+               const float     l0              = curCase.layerRange.x();
+               const float     l1              = curCase.layerRange.y();
+
+               texCoord[0] = tcu::Vec3(oX,             oY,             l0);
+               texCoord[1] = tcu::Vec3(oX,             oY+sY,  l0*0.5f + l1*0.5f);
+               texCoord[2] = tcu::Vec3(oX+sX,  oY,             l0*0.5f + l1*0.5f);
+               texCoord[3] = tcu::Vec3(oX+sX,  oY+sY,  l1);
+       }
+
+       m_renderer.renderQuad(rendered, curCase.textureIndex, texCoordPtr, refParams);
+
+       {
+
+               const bool                              isNearestOnly   = m_testParameters.minFilter == Sampler::NEAREST && m_testParameters.magFilter == Sampler::NEAREST;
+               const tcu::IVec4                formatBitDepth  = getTextureFormatBitDepth(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
+               const tcu::PixelFormat  pixelFormat             (formatBitDepth[0], formatBitDepth[1], formatBitDepth[2], formatBitDepth[3]);
+               const tcu::IVec4                colorBits               = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
+               tcu::LodPrecision               lodPrecision;
+               tcu::LookupPrecision    lookupPrecision;
+
+               lodPrecision.derivateBits               = 18;
+               lodPrecision.lodBits                    = 6;
+               lookupPrecision.colorThreshold  = tcu::computeFixedPointThreshold(colorBits) / refParams.colorScale;
+               lookupPrecision.coordBits               = tcu::IVec3(20,20,20);
+               lookupPrecision.uvwBits                 = tcu::IVec3(7,7,0);
+               lookupPrecision.colorMask               = getCompareMask(pixelFormat);
+
+               const bool isHighQuality = verifyTextureResult(m_context.getTestContext(), rendered.getAccess(), (tcu::Texture2DArrayView)texture.getTexture(),
+                                                                                                          texCoordPtr, refParams, lookupPrecision, lodPrecision, pixelFormat);
+
+               if (!isHighQuality)
+               {
+                       // Evaluate against lower precision requirements.
+                       lodPrecision.lodBits    = 4;
+                       lookupPrecision.uvwBits = tcu::IVec3(4,4,0);
+
+                       log << TestLog::Message << "Warning: Verification against high precision requirements failed, trying with lower requirements." << TestLog::EndMessage;
+
+                       const bool isOk = verifyTextureResult(m_context.getTestContext(), rendered.getAccess(), (tcu::Texture2DArrayView)texture.getTexture(),
+                                                                                                 texCoordPtr, refParams, lookupPrecision, lodPrecision, pixelFormat);
+
+                       if (!isOk)
+                       {
+                               log << TestLog::Message << "ERROR: Verification against low precision requirements failed, failing test case." << TestLog::EndMessage;
+                               return tcu::TestStatus::fail("Image verification failed");
+                       }
+               }
+       }
+
+       m_caseNdx += 1;
+       return m_caseNdx < (int)m_cases.size() ? tcu::TestStatus::incomplete() : tcu::TestStatus::pass("Pass");
+}
+
+// 3D filtering
+
+class Texture3DFilteringTestInstance : public TestInstance
+{
+public:
+       typedef Texture3DTestCaseParameters     ParameterType;
+
+                                                                               Texture3DFilteringTestInstance          (Context& context, const ParameterType& testParameters);
+                                                                               ~Texture3DFilteringTestInstance         (void);
+
+       virtual tcu::TestStatus                         iterate                                                         (void);
+
+private:
+                                                                               Texture3DFilteringTestInstance          (const Texture3DFilteringTestInstance& other);
+       Texture3DFilteringTestInstance&         operator=                                                       (const Texture3DFilteringTestInstance& other);
+
+       struct FilterCase
+       {
+               int                                             textureIndex;
+               tcu::Vec3                               lod;
+               tcu::Vec3                               offset;
+
+               FilterCase (void)
+                       : textureIndex(-1)
+               {
+               }
+
+               FilterCase (const int tex_, const tcu::Vec3& lod_, const tcu::Vec3& offset_)
+                       : textureIndex  (tex_)
+                       , lod                   (lod_)
+                       , offset                (offset_)
+               {
+               }
+       };
+
+       const ParameterType                     m_testParameters;
+       vector<TestTexture3DSp>         m_textures;
+       vector<FilterCase>                      m_cases;
+       TextureRenderer                         m_renderer;
+       int                                                     m_caseNdx;
+};
+
+Texture3DFilteringTestInstance::Texture3DFilteringTestInstance (Context& context, const ParameterType& testParameters)
+       : TestInstance                  (context)
+       , m_testParameters              (testParameters)
+       , m_renderer                    (context, testParameters.sampleCount, TEX3D_VIEWPORT_WIDTH, TEX3D_VIEWPORT_HEIGHT)
+       , m_caseNdx                             (0)
+{
+       const tcu::TextureFormatInfo    fmtInfo         = tcu::getTextureFormatInfo(vk::mapVkFormat(m_testParameters.format));
+       const tcu::Vec4                                 cScale          = fmtInfo.valueMax-fmtInfo.valueMin;
+       const tcu::Vec4                                 cBias           = fmtInfo.valueMin;
+       const int                                               numLevels       = deLog2Floor32(de::max(de::max(m_testParameters.width, m_testParameters.height), m_testParameters.depth)) + 1;
+
+       // Create textures.
+       m_textures.reserve(2);
+       for (int ndx = 0; ndx < 2; ndx++)
+               m_textures.push_back(TestTexture3DSp(new pipeline::TestTexture3D(vk::mapVkFormat(m_testParameters.format), m_testParameters.width, m_testParameters.height, m_testParameters.depth)));
+
+       // Fill first gradient texture.
+       for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
+       {
+               const tcu::Vec4 gMin = tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f)*cScale + cBias;
+               const tcu::Vec4 gMax = tcu::Vec4(1.0f, 1.0f, 1.0f, 0.0f)*cScale + cBias;
+
+               tcu::fillWithComponentGradients(m_textures[0]->getLevel(levelNdx, 0), gMin, gMax);
+       }
+
+       // Fill second with grid texture.
+       for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
+       {
+               const deUint32  step    = 0x00ffffff / numLevels;
+               const deUint32  rgb             = step*levelNdx;
+               const deUint32  colorA  = 0xff000000 | rgb;
+               const deUint32  colorB  = 0xff000000 | ~rgb;
+
+               tcu::fillWithGrid(m_textures[1]->getLevel(levelNdx, 0), 4, tcu::RGBA(colorA).toVec()*cScale + cBias, tcu::RGBA(colorB).toVec()*cScale + cBias);
+       }
+
+       // Upload.
+       for (vector<TestTexture3DSp>::const_iterator i = m_textures.begin(); i != m_textures.end(); i++)
+       {
+               m_renderer.add3DTexture(*i);
+       }
+
+       // Test cases
+       m_cases.push_back(FilterCase(0, tcu::Vec3(1.5f, 2.8f, 1.0f),    tcu::Vec3(-1.0f, -2.7f, -2.275f)));
+       m_cases.push_back(FilterCase(0, tcu::Vec3(-2.0f, -1.5f, -1.8f), tcu::Vec3(-0.1f, 0.9f, -0.25f)));
+       m_cases.push_back(FilterCase(1, tcu::Vec3(0.2f, 0.175f, 0.3f),  tcu::Vec3(-2.0f, -3.7f, -1.825f)));
+       m_cases.push_back(FilterCase(1, tcu::Vec3(-0.8f, -2.3f, -2.5f), tcu::Vec3(0.2f, -0.1f, 1.325f)));
+}
+
+Texture3DFilteringTestInstance::~Texture3DFilteringTestInstance (void)
+{
+}
+
+tcu::TestStatus Texture3DFilteringTestInstance::iterate (void)
+{
+       tcu::TestLog&                                           log                     = m_context.getTestContext().getLog();
+
+       const pipeline::TestTexture3D&  texture         = m_renderer.get3DTexture(m_cases[m_caseNdx].textureIndex);
+       const tcu::TextureFormat                texFmt          = texture.getTextureFormat();
+       const tcu::TextureFormatInfo    fmtInfo         = tcu::getTextureFormatInfo(texFmt);
+       const FilterCase&                               curCase         = m_cases[m_caseNdx];
+       ReferenceParams                                 refParams       (TEXTURETYPE_3D);
+       tcu::Surface                                    rendered        (m_renderer.getRenderWidth(), m_renderer.getRenderHeight());
+       tcu::Vec3                                               texCoord[4];
+       const float* const                              texCoordPtr     = (const float*)&texCoord[0];
+
+       // Params for reference computation.
+       refParams.sampler               = util::createSampler(m_testParameters.wrapS, m_testParameters.wrapT, m_testParameters.wrapR, m_testParameters.minFilter, m_testParameters.magFilter);
+       refParams.samplerType   = getSamplerType(texFmt);
+       refParams.lodMode               = LODMODE_EXACT;
+       refParams.colorBias             = fmtInfo.lookupBias;
+       refParams.colorScale    = fmtInfo.lookupScale;
+
+       // Compute texture coordinates.
+       log << TestLog::Message << "Approximate lod per axis = " << curCase.lod << ", offset = " << curCase.offset << TestLog::EndMessage;
+
+       {
+               const float     lodX    = curCase.lod.x();
+               const float     lodY    = curCase.lod.y();
+               const float     lodZ    = curCase.lod.z();
+               const float     oX              = curCase.offset.x();
+               const float     oY              = curCase.offset.y();
+               const float oZ          = curCase.offset.z();
+               const float     sX              = deFloatExp2(lodX) * float(m_renderer.getRenderWidth())                                                                                / float(m_textures[0]->getTexture().getWidth());
+               const float     sY              = deFloatExp2(lodY) * float(m_renderer.getRenderHeight())                                                                               / float(m_textures[0]->getTexture().getHeight());
+               const float     sZ              = deFloatExp2(lodZ) * float(de::max(m_renderer.getRenderWidth(), m_renderer.getRenderHeight())) / float(m_textures[0]->getTexture().getDepth());
+
+               texCoord[0] = tcu::Vec3(oX,             oY,             oZ);
+               texCoord[1] = tcu::Vec3(oX,             oY+sY,  oZ + sZ*0.5f);
+               texCoord[2] = tcu::Vec3(oX+sX,  oY,             oZ + sZ*0.5f);
+               texCoord[3] = tcu::Vec3(oX+sX,  oY+sY,  oZ + sZ);
+       }
+
+       m_renderer.renderQuad(rendered, curCase.textureIndex, texCoordPtr, refParams);
+
+       {
+               const bool                              isNearestOnly   = m_testParameters.minFilter == Sampler::NEAREST && m_testParameters.magFilter == Sampler::NEAREST;
+               const tcu::IVec4                formatBitDepth  = getTextureFormatBitDepth(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
+               const tcu::PixelFormat  pixelFormat             (formatBitDepth[0], formatBitDepth[1], formatBitDepth[2], formatBitDepth[3]);
+               const tcu::IVec4                colorBits               = max(getBitsVec(pixelFormat) - (isNearestOnly ? 1 : 2), tcu::IVec4(0)); // 1 inaccurate bit if nearest only, 2 otherwise
+               tcu::LodPrecision               lodPrecision;
+               tcu::LookupPrecision    lookupPrecision;
+
+               lodPrecision.derivateBits               = 18;
+               lodPrecision.lodBits                    = 6;
+               lookupPrecision.colorThreshold  = tcu::computeFixedPointThreshold(colorBits) / refParams.colorScale;
+               lookupPrecision.coordBits               = tcu::IVec3(20,20,20);
+               lookupPrecision.uvwBits                 = tcu::IVec3(7,7,7);
+               lookupPrecision.colorMask               = getCompareMask(pixelFormat);
+
+               const bool isHighQuality = verifyTextureResult(m_context.getTestContext(), rendered.getAccess(), (tcu::Texture3DView)texture.getTexture(),
+                                                                                                          texCoordPtr, refParams, lookupPrecision, lodPrecision, pixelFormat);
+
+               if (!isHighQuality)
+               {
+                       // Evaluate against lower precision requirements.
+                       lodPrecision.lodBits    = 4;
+                       lookupPrecision.uvwBits = tcu::IVec3(4,4,4);
+
+                       log << TestLog::Message << "Warning: Verification against high precision requirements failed, trying with lower requirements." << TestLog::EndMessage;
+
+                       const bool isOk = verifyTextureResult(m_context.getTestContext(), rendered.getAccess(), (tcu::Texture3DView)texture.getTexture(),
+                                                                                                 texCoordPtr, refParams, lookupPrecision, lodPrecision, pixelFormat);
+
+                       if (!isOk)
+                       {
+                               log << TestLog::Message << "ERROR: Verification against low precision requirements failed, failing test case." << TestLog::EndMessage;
+                               return tcu::TestStatus::fail("Image verification failed");
+                       }
+               }
+       }
+
+       m_caseNdx += 1;
+       return m_caseNdx < (int)m_cases.size() ? tcu::TestStatus::incomplete() : tcu::TestStatus::pass("Pass");
+}
+
+bool verifierCanBeUsed(const VkFormat format, const Sampler::FilterMode minFilter, const Sampler::FilterMode magFilter)
+{
+       const tcu::TextureFormat                                textureFormat           = mapVkFormat(format);
+       const tcu::TextureChannelClass                  textureChannelClass     = tcu::getTextureChannelClass(textureFormat.type);
+
+       return !(!(textureChannelClass == tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT ||
+                          textureChannelClass == tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT   ||
+                          textureChannelClass == tcu::TEXTURECHANNELCLASS_FLOATING_POINT) &&
+                         (tcu::TexVerifierUtil::isLinearFilter(minFilter) || tcu::TexVerifierUtil::isLinearFilter(magFilter)));
+}
+
+} // anonymous
+
+void createTextureFilteringTests (tcu::TestCaseGroup* textureTests)
+{
+       tcu::TestContext&                               testCtx                                 = textureTests->getTestContext();
+       de::MovePtr<tcu::TestCaseGroup> textureFilteringTests   (new tcu::TestCaseGroup(testCtx, "filtering", "Texture filtering tests."));
+
+       static const struct
+       {
+               const char* const                       name;
+               const Sampler::WrapMode         mode;
+       } wrapModes[] =
+       {
+               { "repeat",                                     Sampler::REPEAT_GL                      },
+               { "mirrored_repeat",            Sampler::MIRRORED_REPEAT_GL     },
+               { "clamp_to_edge",                      Sampler::CLAMP_TO_EDGE          },
+               { "clamp_to_border",            Sampler::CLAMP_TO_BORDER        },
+               { "mirror_clamp_to_edge",       Sampler::MIRRORED_ONCE          }
+       };
+
+       static const struct
+       {
+               const char* const                       name;
+               const Sampler::FilterMode       mode;
+       } minFilterModes[] =
+       {
+               { "nearest",                            Sampler::NEAREST                                        },
+               { "linear",                                     Sampler::LINEAR                                         },
+               { "nearest_mipmap_nearest",     Sampler::NEAREST_MIPMAP_NEAREST         },
+               { "linear_mipmap_nearest",      Sampler::LINEAR_MIPMAP_NEAREST          },
+               { "nearest_mipmap_linear",      Sampler::NEAREST_MIPMAP_LINEAR          },
+               { "linear_mipmap_linear",       Sampler::LINEAR_MIPMAP_LINEAR           }
+       };
+
+       static const struct
+       {
+               const char* const                       name;
+               const Sampler::FilterMode       mode;
+       } magFilterModes[] =
+       {
+               { "nearest",                            Sampler::NEAREST },
+               { "linear",                                     Sampler::LINEAR  }
+       };
+
+       static const struct
+       {
+               const int       width;
+               const int       height;
+       } sizes2D[] =
+       {
+               {   4,    8 },
+               {  32,   64 },
+               { 128,  128     },
+               {   3,    7 },
+               {  31,   55 },
+               { 127,   99 }
+       };
+
+       static const struct
+       {
+               const int       size;
+       } sizesCube[] =
+       {
+               {   8 },
+               {  64 },
+               { 128 },
+               {   7 },
+               {  63 }
+       };
+
+       static const struct
+       {
+               const int       width;
+               const int       height;
+               const int       numLayers;
+       } sizes2DArray[] =
+       {
+               {   4,   8,   8 },
+               {  32,  64,  16 },
+               { 128,  32,  64 },
+               {   3,   7,   5 },
+               {  63,  63,  63 }
+       };
+
+       static const struct
+       {
+               const int       width;
+               const int       height;
+               const int       depth;
+       } sizes3D[] =
+       {
+               {   4,   8,   8 },
+               {  32,  64,  16 },
+               { 128,  32,  64 },
+               {   3,   7,   5 },
+               {  63,  63,  63 }
+       };
+
+       static const struct
+       {
+               const char* const       name;
+               const VkFormat          format;
+       } filterableFormatsByType[] =
+       {
+               { "r16g16b16a16_sfloat",        VK_FORMAT_R16G16B16A16_SFLOAT           },
+               { "b10g11r11_ufloat",           VK_FORMAT_B10G11R11_UFLOAT_PACK32       },
+               { "e5b9g9r9_ufloat",            VK_FORMAT_E5B9G9R9_UFLOAT_PACK32        },
+               { "r8g8b8a8_unorm",                     VK_FORMAT_R8G8B8A8_UNORM                        },
+               { "r8g8b8a8_snorm",                     VK_FORMAT_R8G8B8A8_SNORM                        },
+               { "r5g6b5_unorm",                       VK_FORMAT_R5G6B5_UNORM_PACK16           },
+               { "r4g4b4a4_unorm",                     VK_FORMAT_R4G4B4A4_UNORM_PACK16         },
+               { "r5g5b5a1_unorm",                     VK_FORMAT_R5G5B5A1_UNORM_PACK16         },
+               { "a8b8g8r8_srgb",                      VK_FORMAT_A8B8G8R8_SRGB_PACK32          },
+               { "a1r5g5b5_unorm",                     VK_FORMAT_A1R5G5B5_UNORM_PACK16         }
+       };
+
+       // 2D texture filtering.
+       {
+               de::MovePtr<tcu::TestCaseGroup> group2D                         (new tcu::TestCaseGroup(testCtx, "2d", "2D Texture Filtering"));
+
+               de::MovePtr<tcu::TestCaseGroup> formatsGroup            (new tcu::TestCaseGroup(testCtx, "formats", "2D Texture Formats"));
+               de::MovePtr<tcu::TestCaseGroup> sizesGroup                      (new tcu::TestCaseGroup(testCtx, "sizes", "Texture Sizes"));
+               de::MovePtr<tcu::TestCaseGroup> combinationsGroup       (new tcu::TestCaseGroup(testCtx, "combinations", "Filter and wrap mode combinations"));
+
+               // Formats.
+               for (int fmtNdx = 0; fmtNdx < DE_LENGTH_OF_ARRAY(filterableFormatsByType); fmtNdx++)
+               {
+                       for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+                       {
+                               const Sampler::FilterMode       minFilter               = minFilterModes[filterNdx].mode;
+                               const char* const                       filterName              = minFilterModes[filterNdx].name;
+                               const bool                                      isMipmap                = minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
+                               const char* const                       formatName              = filterableFormatsByType[fmtNdx].name;
+                               const string                            name                    = string(formatName) + "_" + filterName;
+                               Texture2DTestCaseParameters     testParameters;
+
+                               testParameters.format           = filterableFormatsByType[fmtNdx].format;
+                               testParameters.minFilter        = minFilter;
+                               testParameters.magFilter        = isMipmap ? Sampler::LINEAR : minFilter;
+
+                               testParameters.wrapS            = Sampler::REPEAT_GL;
+                               testParameters.wrapT            = Sampler::REPEAT_GL;
+                               testParameters.width            = 64;
+                               testParameters.height           = 64;
+
+                               testParameters.programs.push_back(PROGRAM_2D_FLOAT);
+                               testParameters.programs.push_back(PROGRAM_2D_UINT);
+
+                               // Some combinations of the tests have to be skipped due to the restrictions of the verifiers.
+                               if (verifierCanBeUsed(testParameters.format, testParameters.minFilter, testParameters.magFilter))
+                               {
+                                       formatsGroup->addChild(new TextureTestCase<Texture2DFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                               }
+                       }
+               }
+
+               // Sizes.
+               for (int sizeNdx = 0; sizeNdx < DE_LENGTH_OF_ARRAY(sizes2D); sizeNdx++)
+               {
+                       for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+                       {
+                               const Sampler::FilterMode       minFilter               = minFilterModes[filterNdx].mode;
+                               const char* const                       filterName              = minFilterModes[filterNdx].name;
+                               const bool                                      isMipmap                = minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
+                               const string                            name                    = de::toString(sizes2D[sizeNdx].width) + "x" + de::toString(sizes2D[sizeNdx].height) + "_" + filterName;
+                               Texture2DTestCaseParameters     testParameters;
+
+                               testParameters.format           = VK_FORMAT_R8G8B8A8_UNORM;
+                               testParameters.minFilter        = minFilter;
+                               testParameters.magFilter        = isMipmap ? Sampler::LINEAR : minFilter;
+                               testParameters.wrapS            = Sampler::REPEAT_GL;
+                               testParameters.wrapT            = Sampler::REPEAT_GL;
+                               testParameters.width            = sizes2D[sizeNdx].width;
+                               testParameters.height           = sizes2D[sizeNdx].height;
+
+                               testParameters.programs.push_back(PROGRAM_2D_FLOAT);
+
+                               sizesGroup->addChild(new TextureTestCase<Texture2DFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                       }
+               }
+
+               // Wrap modes.
+               for (int minFilterNdx = 0; minFilterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); minFilterNdx++)
+               {
+                       for (int magFilterNdx = 0; magFilterNdx < DE_LENGTH_OF_ARRAY(magFilterModes); magFilterNdx++)
+                       {
+                               for (int wrapSNdx = 0; wrapSNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapSNdx++)
+                               {
+                                       for (int wrapTNdx = 0; wrapTNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapTNdx++)
+                                       {
+                                               const string    name            = string(minFilterModes[minFilterNdx].name) + "_" + magFilterModes[magFilterNdx].name + "_" + wrapModes[wrapSNdx].name + "_" + wrapModes[wrapTNdx].name;
+                                               Texture2DTestCaseParameters     testParameters;
+
+                                               testParameters.format           = VK_FORMAT_R8G8B8A8_UNORM;
+                                               testParameters.minFilter        = minFilterModes[minFilterNdx].mode;
+                                               testParameters.magFilter        = magFilterModes[magFilterNdx].mode;
+                                               testParameters.wrapS            = wrapModes[wrapSNdx].mode;
+                                               testParameters.wrapT            = wrapModes[wrapTNdx].mode;
+                                               testParameters.width            = 63;
+                                               testParameters.height           = 57;
+
+                                               testParameters.programs.push_back(PROGRAM_2D_FLOAT);
+
+                                               combinationsGroup->addChild(new TextureTestCase<Texture2DFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                       }
+                               }
+                       }
+               }
+
+               group2D->addChild(formatsGroup.release());
+               group2D->addChild(sizesGroup.release());
+               group2D->addChild(combinationsGroup.release());
+
+               textureFilteringTests->addChild(group2D.release());
+       }
+
+       // Cube map texture filtering.
+       {
+               de::MovePtr<tcu::TestCaseGroup> groupCube                               (new tcu::TestCaseGroup(testCtx, "cube", "Cube Map Texture Filtering"));
+
+               de::MovePtr<tcu::TestCaseGroup> formatsGroup                    (new tcu::TestCaseGroup(testCtx, "formats", "2D Texture Formats"));
+               de::MovePtr<tcu::TestCaseGroup> sizesGroup                              (new tcu::TestCaseGroup(testCtx, "sizes", "Texture Sizes"));
+               de::MovePtr<tcu::TestCaseGroup> combinationsGroup               (new tcu::TestCaseGroup(testCtx, "combinations", "Filter and wrap mode combinations"));
+               de::MovePtr<tcu::TestCaseGroup> onlyFaceInteriorGroup   (new tcu::TestCaseGroup(testCtx, "no_edges_visible", "Don't sample anywhere near a face's edges"));
+
+               // Formats.
+               for (int fmtNdx = 0; fmtNdx < DE_LENGTH_OF_ARRAY(filterableFormatsByType); fmtNdx++)
+               {
+                       for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+                       {
+                               const Sampler::FilterMode                               minFilter       = minFilterModes[filterNdx].mode;
+                               const char* const                                               filterName      = minFilterModes[filterNdx].name;
+                               const bool                                                              isMipmap        = minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
+                               const char* const                                               formatName      = filterableFormatsByType[fmtNdx].name;
+                               const string                                                    name            = string(formatName) + "_" + filterName;
+                               TextureCubeFilteringTestCaseParameters  testParameters;
+
+                               testParameters.format                                   = filterableFormatsByType[fmtNdx].format;
+                               testParameters.minFilter                                = minFilter;
+                               testParameters.magFilter                                = isMipmap ? Sampler::LINEAR : minFilter;
+
+                               testParameters.wrapS                                    = Sampler::REPEAT_GL;
+                               testParameters.wrapT                                    = Sampler::REPEAT_GL;
+                               testParameters.onlySampleFaceInterior   = false;
+                               testParameters.size                                             = 64;
+
+                               testParameters.programs.push_back(PROGRAM_CUBE_FLOAT);
+                               testParameters.programs.push_back(PROGRAM_CUBE_UINT);
+
+                               // Some tests have to be skipped due to the restrictions of the verifiers.
+                               if (verifierCanBeUsed(testParameters.format, testParameters.minFilter, testParameters.magFilter))
+                               {
+                                       formatsGroup->addChild(new TextureTestCase<TextureCubeFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                               }
+                       }
+               }
+
+               // Sizes.
+               for (int sizeNdx = 0; sizeNdx < DE_LENGTH_OF_ARRAY(sizesCube); sizeNdx++)
+               {
+                       for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+                       {
+                               const Sampler::FilterMode                               minFilter               = minFilterModes[filterNdx].mode;
+                               const char* const                                               filterName              = minFilterModes[filterNdx].name;
+                               const bool                                                              isMipmap                = minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
+                               const string                                                    name                    = de::toString(sizesCube[sizeNdx].size) + "x" + de::toString(sizesCube[sizeNdx].size) + "_" + filterName;
+                               TextureCubeFilteringTestCaseParameters  testParameters;
+
+                               testParameters.format                                   = VK_FORMAT_R8G8B8A8_UNORM;
+                               testParameters.minFilter                                = minFilter;
+                               testParameters.magFilter                                = isMipmap ? Sampler::LINEAR : minFilter;
+                               testParameters.wrapS                                    = Sampler::REPEAT_GL;
+                               testParameters.wrapT                                    = Sampler::REPEAT_GL;
+                               testParameters.onlySampleFaceInterior   = false;
+                               testParameters.size                                             = sizesCube[sizeNdx].size;
+
+                               testParameters.programs.push_back(PROGRAM_CUBE_FLOAT);
+
+                               sizesGroup->addChild(new TextureTestCase<TextureCubeFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+
+                       }
+               }
+
+               // Filter/wrap mode combinations.
+               for (int minFilterNdx = 0; minFilterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); minFilterNdx++)
+               {
+                       for (int magFilterNdx = 0; magFilterNdx < DE_LENGTH_OF_ARRAY(magFilterModes); magFilterNdx++)
+                       {
+                               for (int wrapSNdx = 0; wrapSNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapSNdx++)
+                               {
+                                       for (int wrapTNdx = 0; wrapTNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapTNdx++)
+                                       {
+                                               const string                                                    name                    = string(minFilterModes[minFilterNdx].name) + "_" + magFilterModes[magFilterNdx].name + "_" + wrapModes[wrapSNdx].name + "_" + wrapModes[wrapTNdx].name;
+                                               TextureCubeFilteringTestCaseParameters  testParameters;
+
+                                               testParameters.format                                   = VK_FORMAT_R8G8B8A8_UNORM;
+                                               testParameters.minFilter                                = minFilterModes[minFilterNdx].mode;
+                                               testParameters.magFilter                                = magFilterModes[magFilterNdx].mode;
+                                               testParameters.wrapS                                    = wrapModes[wrapSNdx].mode;
+                                               testParameters.wrapT                                    = wrapModes[wrapTNdx].mode;
+                                               testParameters.onlySampleFaceInterior   = false;
+                                               testParameters.size                                             = 63;
+
+                                               testParameters.programs.push_back(PROGRAM_CUBE_FLOAT);
+
+                                               combinationsGroup->addChild(new TextureTestCase<TextureCubeFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                       }
+                               }
+                       }
+               }
+
+               // Cases with no visible cube edges.
+               for (int isLinearI = 0; isLinearI <= 1; isLinearI++)
+               {
+                       const bool                                                              isLinear                = isLinearI != 0;
+                       const string                                                    name                    = isLinear ? "linear" : "nearest";
+                       TextureCubeFilteringTestCaseParameters  testParameters;
+
+                       testParameters.format                                   = VK_FORMAT_R8G8B8A8_UNORM;
+                       testParameters.minFilter                                = isLinear ? Sampler::LINEAR : Sampler::NEAREST;
+                       testParameters.magFilter                                = isLinear ? Sampler::LINEAR : Sampler::NEAREST;
+                       testParameters.wrapS                                    = Sampler::REPEAT_GL;
+                       testParameters.wrapT                                    = Sampler::REPEAT_GL;
+                       testParameters.onlySampleFaceInterior   = true;
+                       testParameters.size                                             = 63;
+
+                       testParameters.programs.push_back(PROGRAM_CUBE_FLOAT);
+
+                       onlyFaceInteriorGroup->addChild(new TextureTestCase<TextureCubeFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+               }
+
+               groupCube->addChild(formatsGroup.release());
+               groupCube->addChild(sizesGroup.release());
+               groupCube->addChild(combinationsGroup.release());
+               groupCube->addChild(onlyFaceInteriorGroup.release());
+
+               textureFilteringTests->addChild(groupCube.release());
+       }
+
+       // 2D array texture filtering.
+       {
+               de::MovePtr<tcu::TestCaseGroup> group2DArray            (new tcu::TestCaseGroup(testCtx, "2d_array", "2D Array Texture Filtering"));
+
+               de::MovePtr<tcu::TestCaseGroup> formatsGroup            (new tcu::TestCaseGroup(testCtx, "formats", "2D Array Texture Formats"));
+               de::MovePtr<tcu::TestCaseGroup> sizesGroup                      (new tcu::TestCaseGroup(testCtx, "sizes", "Texture Sizes"));
+               de::MovePtr<tcu::TestCaseGroup> combinationsGroup       (new tcu::TestCaseGroup(testCtx, "combinations", "Filter and wrap mode combinations"));
+
+               // Formats.
+               for (int fmtNdx = 0; fmtNdx < DE_LENGTH_OF_ARRAY(filterableFormatsByType); fmtNdx++)
+               {
+                       for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+                       {
+                               const Sampler::FilterMode                       minFilter               = minFilterModes[filterNdx].mode;
+                               const char* const                                       filterName              = minFilterModes[filterNdx].name;
+                               const bool                                                      isMipmap                = minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
+                               const char* const                                       formatName              = filterableFormatsByType[fmtNdx].name;
+                               const string                                            name                    = string(formatName) + "_" + filterName;
+                               Texture2DArrayTestCaseParameters        testParameters;
+
+                               testParameters.format           = filterableFormatsByType[fmtNdx].format;
+                               testParameters.minFilter        = minFilter;
+                               testParameters.magFilter        = isMipmap ? Sampler::LINEAR : minFilter;
+
+                               testParameters.wrapS            = Sampler::REPEAT_GL;
+                               testParameters.wrapT            = Sampler::REPEAT_GL;
+                               testParameters.width            = 128;
+                               testParameters.height           = 128;
+                               testParameters.numLayers        = 8;
+
+                               testParameters.programs.push_back(PROGRAM_2D_ARRAY_FLOAT);
+                               testParameters.programs.push_back(PROGRAM_2D_ARRAY_UINT);
+
+                               // Some tests have to be skipped due to the restrictions of the verifiers.
+                               if (verifierCanBeUsed(testParameters.format, testParameters.minFilter, testParameters.magFilter))
+                               {
+                                       formatsGroup->addChild(new TextureTestCase<Texture2DArrayFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                               }
+                       }
+               }
+
+               // Sizes.
+               for (int sizeNdx = 0; sizeNdx < DE_LENGTH_OF_ARRAY(sizes2DArray); sizeNdx++)
+               {
+                       for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+                       {
+                               const Sampler::FilterMode                       minFilter               = minFilterModes[filterNdx].mode;
+                               const char* const                                       filterName              = minFilterModes[filterNdx].name;
+                               const bool                                                      isMipmap                = minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
+                               const string                                            name                    = de::toString(sizes2DArray[sizeNdx].width) + "x" + de::toString(sizes2DArray[sizeNdx].height) + "x" + de::toString(sizes2DArray[sizeNdx].numLayers) + "_" + filterName;
+                               Texture2DArrayTestCaseParameters        testParameters;
+
+                               testParameters.format           = VK_FORMAT_R8G8B8A8_UNORM;
+                               testParameters.minFilter        = minFilter;
+                               testParameters.magFilter        = isMipmap ? Sampler::LINEAR : minFilter;
+                               testParameters.wrapS            = Sampler::REPEAT_GL;
+                               testParameters.wrapT            = Sampler::REPEAT_GL;
+                               testParameters.width            = sizes2DArray[sizeNdx].width;
+                               testParameters.height           = sizes2DArray[sizeNdx].height;
+                               testParameters.numLayers        = sizes2DArray[sizeNdx].numLayers;
+
+                               testParameters.programs.push_back(PROGRAM_2D_ARRAY_FLOAT);
+
+                               sizesGroup->addChild(new TextureTestCase<Texture2DArrayFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                       }
+               }
+
+               // Wrap modes.
+               for (int minFilterNdx = 0; minFilterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); minFilterNdx++)
+               {
+                       for (int magFilterNdx = 0; magFilterNdx < DE_LENGTH_OF_ARRAY(magFilterModes); magFilterNdx++)
+                       {
+                               for (int wrapSNdx = 0; wrapSNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapSNdx++)
+                               {
+                                       for (int wrapTNdx = 0; wrapTNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapTNdx++)
+                                       {
+                                               const string                                            name                    = string(minFilterModes[minFilterNdx].name) + "_" + magFilterModes[magFilterNdx].name + "_" + wrapModes[wrapSNdx].name + "_" + wrapModes[wrapTNdx].name;
+                                               Texture2DArrayTestCaseParameters        testParameters;
+
+                                               testParameters.format           = VK_FORMAT_R8G8B8A8_UNORM;
+                                               testParameters.minFilter        = minFilterModes[minFilterNdx].mode;
+                                               testParameters.magFilter        = magFilterModes[magFilterNdx].mode;
+                                               testParameters.wrapS            = wrapModes[wrapSNdx].mode;
+                                               testParameters.wrapT            = wrapModes[wrapTNdx].mode;
+                                               testParameters.width            = 123;
+                                               testParameters.height           = 107;
+                                               testParameters.numLayers        = 7;
+
+                                               testParameters.programs.push_back(PROGRAM_2D_ARRAY_FLOAT);
+
+                                               combinationsGroup->addChild(new TextureTestCase<Texture2DArrayFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                       }
+                               }
+                       }
+               }
+
+               group2DArray->addChild(formatsGroup.release());
+               group2DArray->addChild(sizesGroup.release());
+               group2DArray->addChild(combinationsGroup.release());
+
+               textureFilteringTests->addChild(group2DArray.release());
+       }
+
+       // 3D texture filtering.
+       {
+               de::MovePtr<tcu::TestCaseGroup> group3D                         (new tcu::TestCaseGroup(testCtx, "3d", "3D Texture Filtering"));
+
+               de::MovePtr<tcu::TestCaseGroup> formatsGroup            (new tcu::TestCaseGroup(testCtx, "formats", "3D Texture Formats"));
+               de::MovePtr<tcu::TestCaseGroup> sizesGroup                      (new tcu::TestCaseGroup(testCtx, "sizes", "Texture Sizes"));
+               de::MovePtr<tcu::TestCaseGroup> combinationsGroup       (new tcu::TestCaseGroup(testCtx, "combinations", "Filter and wrap mode combinations"));
+
+               // Formats.
+               for (int fmtNdx = 0; fmtNdx < DE_LENGTH_OF_ARRAY(filterableFormatsByType); fmtNdx++)
+               {
+                       for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+                       {
+                               const Sampler::FilterMode       minFilter               = minFilterModes[filterNdx].mode;
+                               const char* const                       filterName              = minFilterModes[filterNdx].name;
+                               const bool                                      isMipmap                = minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
+                               const char* const                       formatName              = filterableFormatsByType[fmtNdx].name;
+                               const string                            name                    = string(formatName) + "_" + filterName;
+                               Texture3DTestCaseParameters     testParameters;
+
+                               testParameters.format           = filterableFormatsByType[fmtNdx].format;
+                               testParameters.minFilter        = minFilter;
+                               testParameters.magFilter        = isMipmap ? Sampler::LINEAR : minFilter;
+
+                               testParameters.wrapS            = Sampler::REPEAT_GL;
+                               testParameters.wrapT            = Sampler::REPEAT_GL;
+                               testParameters.wrapR            = Sampler::REPEAT_GL;
+                               testParameters.width            = 64;
+                               testParameters.height           = 64;
+                               testParameters.depth            = 64;
+
+                               testParameters.programs.push_back(PROGRAM_3D_FLOAT);
+                               testParameters.programs.push_back(PROGRAM_3D_UINT);
+
+                               // Some tests have to be skipped due to the restrictions of the verifiers.
+                               if (verifierCanBeUsed(testParameters.format, testParameters.minFilter, testParameters.magFilter))
+                               {
+                                       formatsGroup->addChild(new TextureTestCase<Texture3DFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                               }
+                       }
+               }
+
+               // Sizes.
+               for (int sizeNdx = 0; sizeNdx < DE_LENGTH_OF_ARRAY(sizes3D); sizeNdx++)
+               {
+                       for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+                       {
+                               const Sampler::FilterMode               minFilter               = minFilterModes[filterNdx].mode;
+                               const char* const                               filterName              = minFilterModes[filterNdx].name;
+                               const bool                                              isMipmap                = minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
+                               const string                                    name                    = de::toString(sizes3D[sizeNdx].width) + "x" + de::toString(sizes3D[sizeNdx].height) + "x" + de::toString(sizes3D[sizeNdx].depth) + "_" + filterName;
+                               Texture3DTestCaseParameters             testParameters;
+
+                               testParameters.format           = VK_FORMAT_R8G8B8A8_UNORM;
+                               testParameters.minFilter        = minFilter;
+                               testParameters.magFilter        = isMipmap ? Sampler::LINEAR : minFilter;
+                               testParameters.wrapS            = Sampler::REPEAT_GL;
+                               testParameters.wrapT            = Sampler::REPEAT_GL;
+                               testParameters.wrapR            = Sampler::REPEAT_GL;
+                               testParameters.width            = sizes3D[sizeNdx].width;
+                               testParameters.height           = sizes3D[sizeNdx].height;
+                               testParameters.depth            = sizes3D[sizeNdx].depth;
+
+                               testParameters.programs.push_back(PROGRAM_3D_FLOAT);
+
+                               sizesGroup->addChild(new TextureTestCase<Texture3DFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                       }
+               }
+
+               // Wrap modes.
+               for (int minFilterNdx = 0; minFilterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); minFilterNdx++)
+               {
+                       for (int magFilterNdx = 0; magFilterNdx < DE_LENGTH_OF_ARRAY(magFilterModes); magFilterNdx++)
+                       {
+                               for (int wrapSNdx = 0; wrapSNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapSNdx++)
+                               {
+                                       for (int wrapTNdx = 0; wrapTNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapTNdx++)
+                                       {
+                                               for (int wrapRNdx = 0; wrapRNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapRNdx++)
+                                               {
+                                                       const string                            name                    = string(minFilterModes[minFilterNdx].name) + "_" + magFilterModes[magFilterNdx].name + "_" + wrapModes[wrapSNdx].name + "_" + wrapModes[wrapTNdx].name + "_" + wrapModes[wrapRNdx].name;
+                                                       Texture3DTestCaseParameters     testParameters;
+
+                                                       testParameters.format           = VK_FORMAT_R8G8B8A8_UNORM;
+                                                       testParameters.minFilter        = minFilterModes[minFilterNdx].mode;
+                                                       testParameters.magFilter        = magFilterModes[magFilterNdx].mode;
+                                                       testParameters.wrapS            = wrapModes[wrapSNdx].mode;
+                                                       testParameters.wrapT            = wrapModes[wrapTNdx].mode;
+                                                       testParameters.wrapR            = wrapModes[wrapRNdx].mode;
+                                                       testParameters.width            = 63;
+                                                       testParameters.height           = 57;
+                                                       testParameters.depth            = 67;
+
+                                                       testParameters.programs.push_back(PROGRAM_3D_FLOAT);
+
+                                                       combinationsGroup->addChild(new TextureTestCase<Texture3DFilteringTestInstance>(testCtx, name.c_str(), "", testParameters));
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               group3D->addChild(formatsGroup.release());
+               group3D->addChild(sizesGroup.release());
+               group3D->addChild(combinationsGroup.release());
+
+               textureFilteringTests->addChild(group3D.release());
+       }
+
+       textureTests->addChild(textureFilteringTests.release());
+}
+
+} // texture
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.hpp b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.hpp
new file mode 100644 (file)
index 0000000..e0362b8
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef _VKTTEXTUREFILTERINGTESTS_HPP
+#define _VKTTEXTUREFILTERINGTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Texture filtering tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace texture
+{
+
+void createTextureFilteringTests (tcu::TestCaseGroup* textureTests);
+
+} // texture
+} // vkt
+
+#endif // _VKTTEXTUREFILTERINGTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.cpp
new file mode 100644 (file)
index 0000000..bb2a83e
--- /dev/null
@@ -0,0 +1,1812 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Texture test utilities.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTextureTestUtil.hpp"
+
+#include "deFilePath.hpp"
+#include "deMath.h"
+#include "tcuCompressedTexture.hpp"
+#include "tcuImageIO.hpp"
+#include "tcuStringTemplate.hpp"
+#include "tcuTestLog.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkImageUtil.hpp"
+#include "vkPrograms.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkRefUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include <map>
+#include <string>
+#include <vector>
+
+using tcu::TestLog;
+
+using namespace vk;
+using namespace glu::TextureTestUtil;
+
+namespace vkt
+{
+namespace texture
+{
+namespace util
+{
+
+struct ShaderParameters {
+       float           bias;                           //!< User-supplied bias.
+       float           ref;                            //!< Reference value for shadow lookups.
+       tcu::Vec2       padding;                        //!< Shader uniform padding.
+       tcu::Vec4       colorScale;                     //!< Scale for texture color values.
+       tcu::Vec4       colorBias;                      //!< Bias for texture color values.
+};
+
+const char* getProgramName(Program program)
+{
+       switch (program)
+       {
+               case PROGRAM_2D_FLOAT:                  return "2D_FLOAT";
+               case PROGRAM_2D_INT:                    return "2D_INT";
+               case PROGRAM_2D_UINT:                   return "2D_UINT";
+               case PROGRAM_2D_SHADOW:                 return "2D_SHADOW";
+               case PROGRAM_2D_FLOAT_BIAS:             return "2D_FLOAT_BIAS";
+               case PROGRAM_2D_INT_BIAS:               return "2D_INT_BIAS";
+               case PROGRAM_2D_UINT_BIAS:              return "2D_UINT_BIAS";
+               case PROGRAM_2D_SHADOW_BIAS:    return "2D_SHADOW_BIAS";
+               case PROGRAM_1D_FLOAT:                  return "1D_FLOAT";
+               case PROGRAM_1D_INT:                    return "1D_INT";
+               case PROGRAM_1D_UINT:                   return "1D_UINT";
+               case PROGRAM_1D_SHADOW:                 return "1D_SHADOW";
+               case PROGRAM_1D_FLOAT_BIAS:             return "1D_FLOAT_BIAS";
+               case PROGRAM_1D_INT_BIAS:               return "1D_INT_BIAS";
+               case PROGRAM_1D_UINT_BIAS:              return "1D_UINT_BIAS";
+               case PROGRAM_1D_SHADOW_BIAS:    return "1D_SHADOW_BIAS";
+               case PROGRAM_CUBE_FLOAT:                return "CUBE_FLOAT";
+               case PROGRAM_CUBE_INT:                  return "CUBE_INT";
+               case PROGRAM_CUBE_UINT:                 return "CUBE_UINT";
+               case PROGRAM_CUBE_SHADOW:               return "CUBE_SHADOW";
+               case PROGRAM_CUBE_FLOAT_BIAS:   return "CUBE_FLOAT_BIAS";
+               case PROGRAM_CUBE_INT_BIAS:             return "CUBE_INT_BIAS";
+               case PROGRAM_CUBE_UINT_BIAS:    return "CUBE_UINT_BIAS";
+               case PROGRAM_CUBE_SHADOW_BIAS:  return "CUBE_SHADOW_BIAS";
+               case PROGRAM_2D_ARRAY_FLOAT:    return "2D_ARRAY_FLOAT";
+               case PROGRAM_2D_ARRAY_INT:              return "2D_ARRAY_INT";
+               case PROGRAM_2D_ARRAY_UINT:             return "2D_ARRAY_UINT";
+               case PROGRAM_2D_ARRAY_SHADOW:   return "2D_ARRAY_SHADOW";
+               case PROGRAM_3D_FLOAT:                  return "3D_FLOAT";
+               case PROGRAM_3D_INT:                    return "3D_INT";
+               case PROGRAM_3D_UINT:                   return "3D_UINT";
+               case PROGRAM_3D_FLOAT_BIAS:             return "3D_FLOAT_BIAS";
+               case PROGRAM_3D_INT_BIAS:               return "3D_INT_BIAS";
+               case PROGRAM_3D_UINT_BIAS:              return "3D_UINT_BIAS";
+               case PROGRAM_CUBE_ARRAY_FLOAT:  return "CUBE_ARRAY_FLOAT";
+               case PROGRAM_CUBE_ARRAY_INT:    return "CUBE_ARRAY_INT";
+               case PROGRAM_CUBE_ARRAY_UINT:   return "CUBE_ARRAY_UINT";
+               case PROGRAM_CUBE_ARRAY_SHADOW: return "CUBE_ARRAY_SHADOW";
+               case PROGRAM_1D_ARRAY_FLOAT:    return "1D_ARRAY_FLOAT";
+               case PROGRAM_1D_ARRAY_INT:              return "1D_ARRAY_INT";
+               case PROGRAM_1D_ARRAY_UINT:             return "1D_ARRAY_UINT";
+               case PROGRAM_1D_ARRAY_SHADOW:   return "1D_ARRAY_SHADOW";
+               case PROGRAM_BUFFER_FLOAT:              return "BUFFER_FLOAT";
+               case PROGRAM_BUFFER_INT:                return "BUFFER_INT";
+               case PROGRAM_BUFFER_UINT:               return "BUFFER_UINT";
+               default:
+                       DE_ASSERT(false);
+       }
+       return NULL;
+}
+
+VkImageViewType textureTypeToImageViewType (TextureBinding::Type type)
+{
+       switch (type)
+       {
+               case TextureBinding::TYPE_2D:                   return VK_IMAGE_VIEW_TYPE_2D;
+               case TextureBinding::TYPE_2D_ARRAY:             return VK_IMAGE_VIEW_TYPE_2D_ARRAY;
+               case TextureBinding::TYPE_CUBE_MAP:             return VK_IMAGE_VIEW_TYPE_CUBE;
+               case TextureBinding::TYPE_3D:                   return VK_IMAGE_VIEW_TYPE_3D;
+               default:
+                       DE_ASSERT(false);
+       }
+
+       return VK_IMAGE_VIEW_TYPE_2D;
+}
+
+VkImageType imageViewTypeToImageType (VkImageViewType type)
+{
+       switch (type)
+       {
+               case VK_IMAGE_VIEW_TYPE_2D:
+               case VK_IMAGE_VIEW_TYPE_2D_ARRAY:
+               case VK_IMAGE_VIEW_TYPE_CUBE:                   return VK_IMAGE_TYPE_2D;
+               case VK_IMAGE_VIEW_TYPE_3D:                             return VK_IMAGE_TYPE_3D;
+               default:
+                       DE_ASSERT(false);
+       }
+
+       return VK_IMAGE_TYPE_2D;
+}
+
+void initializePrograms(vk::SourceCollections& programCollection, glu::Precision texCoordPrecision, const std::vector<Program>& programs)
+{
+       static const char* vertShaderTemplate =
+               "${VTX_HEADER}"
+               "layout(location = 0) ${VTX_IN} highp vec4 a_position;\n"
+               "layout(location = 1) ${VTX_IN} ${PRECISION} ${TEXCOORD_TYPE} a_texCoord;\n"
+               "layout(location = 0) ${VTX_OUT} ${PRECISION} ${TEXCOORD_TYPE} v_texCoord;\n"
+               "${VTX_OUT} gl_PerVertex { vec4 gl_Position; };\n"
+               "\n"
+               "void main (void)\n"
+               "{\n"
+               "       gl_Position = a_position;\n"
+               "       v_texCoord = a_texCoord;\n"
+               "}\n";
+
+       static const char* fragShaderTemplate =
+               "${FRAG_HEADER}"
+               "layout(location = 0) ${FRAG_IN} ${PRECISION} ${TEXCOORD_TYPE} v_texCoord;\n"
+               "layout(location = 0) out mediump vec4 ${FRAG_COLOR};\n"
+               "layout (set=0, binding=0, std140) uniform Block \n"
+               "{\n"
+               "  ${PRECISION} float u_bias;\n"
+               "  ${PRECISION} float u_ref;\n"
+               "  ${PRECISION} vec4 u_colorScale;\n"
+               "  ${PRECISION} vec4 u_colorBias;\n"
+               "};\n\n"
+               "layout (set=1, binding=0) uniform ${PRECISION} ${SAMPLER_TYPE} u_sampler;\n"
+               "void main (void)\n"
+               "{\n"
+               "       ${FRAG_COLOR} = ${LOOKUP} * u_colorScale + u_colorBias;\n"
+               "}\n";
+
+       tcu::StringTemplate                                     vertexSource    (vertShaderTemplate);
+       tcu::StringTemplate                                     fragmentSource  (fragShaderTemplate);
+
+       for (std::vector<Program>::const_iterator programIt = programs.begin(); programIt != programs.end(); ++programIt)
+       {
+               Program                                                         program = *programIt;
+               std::map<std::string, std::string>      params;
+
+               bool    isCube          = de::inRange<int>(program, PROGRAM_CUBE_FLOAT, PROGRAM_CUBE_SHADOW_BIAS);
+               bool    isArray         = de::inRange<int>(program, PROGRAM_2D_ARRAY_FLOAT, PROGRAM_2D_ARRAY_SHADOW)
+                                                               || de::inRange<int>(program, PROGRAM_1D_ARRAY_FLOAT, PROGRAM_1D_ARRAY_SHADOW);
+
+               bool    is1D            = de::inRange<int>(program, PROGRAM_1D_FLOAT, PROGRAM_1D_SHADOW_BIAS)
+                                                               || de::inRange<int>(program, PROGRAM_1D_ARRAY_FLOAT, PROGRAM_1D_ARRAY_SHADOW)
+                                                               || de::inRange<int>(program, PROGRAM_BUFFER_FLOAT, PROGRAM_BUFFER_UINT);
+
+               bool    is2D            = de::inRange<int>(program, PROGRAM_2D_FLOAT, PROGRAM_2D_SHADOW_BIAS)
+                                                               || de::inRange<int>(program, PROGRAM_2D_ARRAY_FLOAT, PROGRAM_2D_ARRAY_SHADOW);
+
+               bool    is3D            = de::inRange<int>(program, PROGRAM_3D_FLOAT, PROGRAM_3D_UINT_BIAS);
+               bool    isCubeArray     = de::inRange<int>(program, PROGRAM_CUBE_ARRAY_FLOAT, PROGRAM_CUBE_ARRAY_SHADOW);
+
+               const std::string       version = glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450);
+
+               params["FRAG_HEADER"]   = version + "\n";
+               params["VTX_HEADER"]    = version + "\n";
+               params["VTX_IN"]                = "in";
+               params["VTX_OUT"]               = "out";
+               params["FRAG_IN"]               = "in";
+               params["FRAG_COLOR"]    = "dEQP_FragColor";
+
+               params["PRECISION"]             = glu::getPrecisionName(texCoordPrecision);
+
+               if (isCubeArray)
+                       params["TEXCOORD_TYPE"] = "vec4";
+               else if (isCube || (is2D && isArray) || is3D)
+                       params["TEXCOORD_TYPE"] = "vec3";
+               else if ((is1D && isArray) || is2D)
+                       params["TEXCOORD_TYPE"] = "vec2";
+               else if (is1D)
+                       params["TEXCOORD_TYPE"] = "float";
+               else
+                       DE_ASSERT(DE_FALSE);
+
+               const char*     sampler = DE_NULL;
+               const char*     lookup  = DE_NULL;
+
+               switch (program)
+               {
+                       case PROGRAM_2D_FLOAT:                  sampler = "sampler2D";                          lookup = "texture(u_sampler, v_texCoord)";                                                                                              break;
+                       case PROGRAM_2D_INT:                    sampler = "isampler2D";                         lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_2D_UINT:                   sampler = "usampler2D";                         lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_2D_SHADOW:                 sampler = "sampler2DShadow";            lookup = "vec4(texture(u_sampler, vec3(v_texCoord, u_ref)), 0.0, 0.0, 1.0)";                    break;
+                       case PROGRAM_2D_FLOAT_BIAS:             sampler = "sampler2D";                          lookup = "texture(u_sampler, v_texCoord, u_bias)";                                                                              break;
+                       case PROGRAM_2D_INT_BIAS:               sampler = "isampler2D";                         lookup = "vec4(texture(u_sampler, v_texCoord, u_bias))";                                                                break;
+                       case PROGRAM_2D_UINT_BIAS:              sampler = "usampler2D";                         lookup = "vec4(texture(u_sampler, v_texCoord, u_bias))";                                                                break;
+                       case PROGRAM_2D_SHADOW_BIAS:    sampler = "sampler2DShadow";            lookup = "vec4(texture(u_sampler, vec3(v_texCoord, u_ref), u_bias), 0.0, 0.0, 1.0)";    break;
+                       case PROGRAM_1D_FLOAT:                  sampler = "sampler1D";                          lookup = "texture(u_sampler, v_texCoord)";                                                                                              break;
+                       case PROGRAM_1D_INT:                    sampler = "isampler1D";                         lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_1D_UINT:                   sampler = "usampler1D";                         lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_1D_SHADOW:                 sampler = "sampler1DShadow";            lookup = "vec4(texture(u_sampler, vec3(v_texCoord, 0.0, u_ref)), 0.0, 0.0, 1.0)";               break;
+                       case PROGRAM_1D_FLOAT_BIAS:             sampler = "sampler1D";                          lookup = "texture(u_sampler, v_texCoord, u_bias)";                                                                              break;
+                       case PROGRAM_1D_INT_BIAS:               sampler = "isampler1D";                         lookup = "vec4(texture(u_sampler, v_texCoord, u_bias))";                                                                break;
+                       case PROGRAM_1D_UINT_BIAS:              sampler = "usampler1D";                         lookup = "vec4(texture(u_sampler, v_texCoord, u_bias))";                                                                break;
+                       case PROGRAM_1D_SHADOW_BIAS:    sampler = "sampler1DShadow";            lookup = "vec4(texture(u_sampler, vec3(v_texCoord, 0.0, u_ref), u_bias), 0.0, 0.0, 1.0)";       break;
+                       case PROGRAM_CUBE_FLOAT:                sampler = "samplerCube";                        lookup = "texture(u_sampler, v_texCoord)";                                                                                              break;
+                       case PROGRAM_CUBE_INT:                  sampler = "isamplerCube";                       lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_CUBE_UINT:                 sampler = "usamplerCube";                       lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_CUBE_SHADOW:               sampler = "samplerCubeShadow";          lookup = "vec4(texture(u_sampler, vec4(v_texCoord, u_ref)), 0.0, 0.0, 1.0)";                    break;
+                       case PROGRAM_CUBE_FLOAT_BIAS:   sampler = "samplerCube";                        lookup = "texture(u_sampler, v_texCoord, u_bias)";                                                                              break;
+                       case PROGRAM_CUBE_INT_BIAS:             sampler = "isamplerCube";                       lookup = "vec4(texture(u_sampler, v_texCoord, u_bias))";                                                                break;
+                       case PROGRAM_CUBE_UINT_BIAS:    sampler = "usamplerCube";                       lookup = "vec4(texture(u_sampler, v_texCoord, u_bias))";                                                                break;
+                       case PROGRAM_CUBE_SHADOW_BIAS:  sampler = "samplerCubeShadow";          lookup = "vec4(texture(u_sampler, vec4(v_texCoord, u_ref), u_bias), 0.0, 0.0, 1.0)";    break;
+                       case PROGRAM_2D_ARRAY_FLOAT:    sampler = "sampler2DArray";                     lookup = "texture(u_sampler, v_texCoord)";                                                                                              break;
+                       case PROGRAM_2D_ARRAY_INT:              sampler = "isampler2DArray";            lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_2D_ARRAY_UINT:             sampler = "usampler2DArray";            lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_2D_ARRAY_SHADOW:   sampler = "sampler2DArrayShadow";       lookup = "vec4(texture(u_sampler, vec4(v_texCoord, u_ref)), 0.0, 0.0, 1.0)";                    break;
+                       case PROGRAM_3D_FLOAT:                  sampler = "sampler3D";                          lookup = "texture(u_sampler, v_texCoord)";                                                                                              break;
+                       case PROGRAM_3D_INT:                    sampler = "isampler3D";                         lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_3D_UINT:                   sampler = "usampler3D";                         lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_3D_FLOAT_BIAS:             sampler = "sampler3D";                          lookup = "texture(u_sampler, v_texCoord, u_bias)";                                                                              break;
+                       case PROGRAM_3D_INT_BIAS:               sampler = "isampler3D";                         lookup = "vec4(texture(u_sampler, v_texCoord, u_bias))";                                                                break;
+                       case PROGRAM_3D_UINT_BIAS:              sampler = "usampler3D";                         lookup = "vec4(texture(u_sampler, v_texCoord, u_bias))";                                                                break;
+                       case PROGRAM_CUBE_ARRAY_FLOAT:  sampler = "samplerCubeArray";           lookup = "texture(u_sampler, v_texCoord)";                                                                                              break;
+                       case PROGRAM_CUBE_ARRAY_INT:    sampler = "isamplerCubeArray";          lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_CUBE_ARRAY_UINT:   sampler = "usamplerCubeArray";          lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_CUBE_ARRAY_SHADOW: sampler = "samplerCubeArrayShadow";     lookup = "vec4(texture(u_sampler, v_texCoord, u_ref), 0.0, 0.0, 1.0)";                  break;
+                       case PROGRAM_1D_ARRAY_FLOAT:    sampler = "sampler1DArray";                     lookup = "texture(u_sampler, v_texCoord)";                                                                                              break;
+                       case PROGRAM_1D_ARRAY_INT:              sampler = "isampler1DArray";            lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_1D_ARRAY_UINT:             sampler = "usampler1DArray";            lookup = "vec4(texture(u_sampler, v_texCoord))";                                                                                break;
+                       case PROGRAM_1D_ARRAY_SHADOW:   sampler = "sampler1DArrayShadow";       lookup = "vec4(texture(u_sampler, vec3(v_texCoord, u_ref)), 0.0, 0.0, 1.0)";                    break;
+                       case PROGRAM_BUFFER_FLOAT:              sampler = "samplerBuffer";                      lookup = "texelFetch(u_sampler, int(v_texCoord))";                                                                              break;
+                       case PROGRAM_BUFFER_INT:                sampler = "isamplerBuffer";                     lookup = "vec4(texelFetch(u_sampler, int(v_texCoord)))";                                                                break;
+                       case PROGRAM_BUFFER_UINT:               sampler = "usamplerBuffer";                     lookup = "vec4(texelFetch(u_sampler, int(v_texCoord)))";                                                                break;
+                       default:
+                               DE_ASSERT(false);
+               }
+
+               params["SAMPLER_TYPE"]  = sampler;
+               params["LOOKUP"]                = lookup;
+
+               programCollection.glslSources.add("vertext_" + std::string(getProgramName(program))) << glu::VertexSource(vertexSource.specialize(params));
+               programCollection.glslSources.add("fragment_" + std::string(getProgramName(program))) << glu::FragmentSource(fragmentSource.specialize(params));
+       }
+}
+
+TextureBinding::TextureBinding (Context& context)
+       : m_context                     (context)
+{
+}
+
+TextureBinding::TextureBinding (Context& context, const TestTextureSp& textureData, const TextureBinding::Type type)
+       : m_context                     (context)
+       , m_type                        (type)
+       , m_textureData         (textureData)
+{
+       updateTextureData(m_textureData, m_type);
+}
+
+void TextureBinding::updateTextureData (const TestTextureSp& textureData, const TextureBinding::Type textureType)
+{
+       const DeviceInterface&                                          vkd                                             = m_context.getDeviceInterface();
+       const VkDevice                                                          vkDevice                                = m_context.getDevice();
+       const VkQueue                                                           queue                                   = m_context.getUniversalQueue();
+       const deUint32                                                          queueFamilyIndex                = m_context.getUniversalQueueFamilyIndex();
+       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;
+       const VkImageViewType                                           imageViewType                   = textureTypeToImageViewType(textureType);
+       const VkImageType                                                       imageType                               = imageViewTypeToImageType(imageViewType);
+       const VkImageTiling                                                     imageTiling                             = VK_IMAGE_TILING_OPTIMAL;
+       const VkImageUsageFlags                                         imageUsageFlags                 = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+       const VkFormat                                                          format                                  = mapTextureFormat(textureData->getTextureFormat());
+       const tcu::UVec3                                                        textureDimension                = textureData->getTextureDimension();
+       const deUint32                                                          mipLevels                               = textureData->getNumLevels();
+       const deUint32                                                          arraySize                               = textureData->getArraySize();
+       vk::VkImageFormatProperties                                     imageFormatProperties;
+       const VkResult                                                          imageFormatQueryResult  = m_context.getInstanceInterface().getPhysicalDeviceImageFormatProperties(m_context.getPhysicalDevice(), format, imageType, imageTiling, imageUsageFlags, imageCreateFlags, &imageFormatProperties);
+
+       if (imageFormatQueryResult == VK_ERROR_FORMAT_NOT_SUPPORTED)
+       {
+               TCU_THROW(NotSupportedError, (std::string("Format not supported: ") + vk::getFormatName(format)).c_str());
+       }
+       else
+               VK_CHECK(imageFormatQueryResult);
+
+       if (imageFormatProperties.maxArrayLayers < arraySize)
+               TCU_THROW(NotSupportedError, ("Maximum array layers number for this format is not enough for this test."));
+
+       if (imageFormatProperties.maxMipLevels < mipLevels)
+               TCU_THROW(NotSupportedError, ("Maximum mimap level number for this format is not enough for this test."));
+
+       if (imageFormatProperties.maxExtent.width < textureDimension.x() ||
+               imageFormatProperties.maxExtent.height < textureDimension.y() ||
+               imageFormatProperties.maxExtent.depth < textureDimension.z())
+       {
+               TCU_THROW(NotSupportedError, ("Maximum image dimension for this format is not enough for this test."));
+       }
+
+       // Create image
+       const VkImageCreateInfo                                         imageParams                             =
+       {
+               VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,                                                    // VkStructureType                      sType;
+               DE_NULL,                                                                                                                // const void*                          pNext;
+               imageCreateFlags,                                                                                               // VkImageCreateFlags           flags;
+               imageType,                                                                                                              // VkImageType                          imageType;
+               format,                                                                                                                 // VkFormat                                     format;
+               {                                                                                                                               // VkExtent3D                           extent;
+                       (deUint32)textureDimension.x(),
+                       (deUint32)textureDimension.y(),
+                       (deUint32)textureDimension.z()
+               },
+               mipLevels,                                                                                                              // deUint32                                     mipLevels;
+               arraySize,                                                                                                              // deUint32                                     arrayLayers;
+               VK_SAMPLE_COUNT_1_BIT,                                                                                  // VkSampleCountFlagBits        samples;
+               imageTiling,                                                                                                    // VkImageTiling                        tiling;
+               imageUsageFlags,                                                                                                // VkImageUsageFlags            usage;
+               VK_SHARING_MODE_EXCLUSIVE,                                                                              // VkSharingMode                        sharingMode;
+               1u,                                                                                                                             // deUint32                                     queueFamilyIndexCount;
+               &queueFamilyIndex,                                                                                              // const deUint32*                      pQueueFamilyIndices;
+               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()));
+
+       updateTextureViewMipLevels(0, mipLevels - 1);
+
+       pipeline::uploadTestTexture(vkd, vkDevice, queue, queueFamilyIndex, allocator, *m_textureData, *m_textureImage);
+}
+
+void TextureBinding::updateTextureViewMipLevels (deUint32 baseLevel, deUint32 maxLevel)
+{
+       const DeviceInterface&                                          vkd                                             = m_context.getDeviceInterface();
+       const VkDevice                                                          vkDevice                                = m_context.getDevice();
+       const vk::VkImageViewType                                       imageViewType                   = textureTypeToImageViewType(m_type);
+       const vk::VkFormat                                                      format                                  = mapTextureFormat(m_textureData->getTextureFormat());
+       const bool                                                                      isShadowTexture                 = tcu::hasDepthComponent(m_textureData->getTextureFormat().order);
+       const VkImageAspectFlags                                        aspectMask                              = isShadowTexture ? VK_IMAGE_ASPECT_DEPTH_BIT : VK_IMAGE_ASPECT_COLOR_BIT;
+       const deUint32                                                          layerCount                              = m_textureData->getArraySize();
+       const vk::VkImageViewCreateInfo                         viewParams                              =
+       {
+               vk::VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,   // VkStructureType                      sType;
+               NULL,                                                                                   // const voide*                         pNext;
+               0u,                                                                                             // VkImageViewCreateFlags       flags;
+               *m_textureImage,                                                                // VkImage                                      image;
+               imageViewType,                                                                  // VkImageViewType                      viewType;
+               format,                                                                                 // VkFormat                                     format;
+               makeComponentMappingRGBA(),                                             // VkComponentMapping           components;
+               {
+                       aspectMask,                                                                     // VkImageAspectFlags   aspectMask;
+                       baseLevel,                                                                      // deUint32                             baseMipLevel;
+                       maxLevel-baseLevel+1,                                           // deUint32                             levelCount;
+                       0,                                                                                      // deUint32                             baseArrayLayer;
+                       layerCount                                                                      // deUint32                             layerCount;
+               },                                                                                              // VkImageSubresourceRange      subresourceRange;
+       };
+
+       m_textureImageView              = createImageView(vkd, vkDevice, &viewParams);
+}
+
+const deUint16         TextureRenderer::s_vertexIndices[6] = { 0, 1, 2, 2, 1, 3 };
+const VkDeviceSize     TextureRenderer::s_vertexIndexBufferSize = sizeof(TextureRenderer::s_vertexIndices);
+
+TextureRenderer::TextureRenderer (Context& context, VkSampleCountFlagBits sampleCount, deUint32 renderWidth, deUint32 renderHeight)
+       : m_context                                     (context)
+       , m_log                                         (context.getTestContext().getLog())
+       , m_renderWidth                         (renderWidth)
+       , m_renderHeight                        (renderHeight)
+       , m_sampleCount                         (sampleCount)
+       , m_multisampling                       (m_sampleCount != VK_SAMPLE_COUNT_1_BIT)
+       , m_imageFormat                         (VK_FORMAT_R8G8B8A8_UNORM)
+       , m_textureFormat                       (vk::mapVkFormat(m_imageFormat))
+       , m_uniformBufferSize           (sizeof(ShaderParameters))
+       , m_resultBufferSize            (renderWidth * renderHeight * m_textureFormat.getPixelSize())
+       , m_viewportOffsetX                     (0.0f)
+       , m_viewportOffsetY                     (0.0f)
+       , m_viewportWidth                       ((float)renderWidth)
+       , m_viewportHeight                      ((float)renderHeight)
+{
+       const DeviceInterface&                                          vkd                                             = m_context.getDeviceInterface();
+       const VkDevice                                                          vkDevice                                = m_context.getDevice();
+       const deUint32                                                          queueFamilyIndex                = m_context.getUniversalQueueFamilyIndex();
+       Allocator&                                                                      allocator                               = m_context.getDefaultAllocator();
+
+       // Command Pool
+       {
+               const VkCommandPoolCreateInfo                   cmdPoolCreateInfo               =
+               {
+                       VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,                                     // VkStructureType             sType;
+                       DE_NULL,                                                                                                        // const void*                 pNext;
+                       VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,                        // VkCommandPoolCreateFlags    flags;
+                       queueFamilyIndex                                                                                        // deUint32                    queueFamilyIndex;
+               };
+
+               m_commandPool = createCommandPool(vkd, vkDevice, &cmdPoolCreateInfo, DE_NULL);
+       }
+
+       // Image
+       {
+               const VkImageUsageFlags imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+               VkImageFormatProperties properties;
+
+               if ((m_context.getInstanceInterface().getPhysicalDeviceImageFormatProperties(m_context.getPhysicalDevice(),
+                                                                                                                                                                        m_imageFormat,
+                                                                                                                                                                        VK_IMAGE_TYPE_2D,
+                                                                                                                                                                        VK_IMAGE_TILING_OPTIMAL,
+                                                                                                                                                                        imageUsage,
+                                                                                                                                                                        0,
+                                                                                                                                                                        &properties) == VK_ERROR_FORMAT_NOT_SUPPORTED))
+               {
+                       TCU_THROW(NotSupportedError, "Format not supported");
+               }
+
+               if ((properties.sampleCounts & m_sampleCount) != m_sampleCount)
+               {
+                       TCU_THROW(NotSupportedError, "Format not supported");
+               }
+
+               const VkImageCreateInfo                                 imageCreateInfo                 =
+               {
+                       VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,            // VkStructureType                      sType;
+                       DE_NULL,                                                                        // const void*                          pNext;
+                       0u,                                                                                     // VkImageCreateFlags           flags;
+                       VK_IMAGE_TYPE_2D,                                                       // VkImageType                          imageType;
+                       m_imageFormat,                                                          // VkFormat                                     format;
+                       { m_renderWidth, m_renderHeight, 1u },          // VkExtent3D                           extent;
+                       1u,                                                                                     // deUint32                                     mipLevels;
+                       1u,                                                                                     // deUint32                                     arrayLayers;
+                       m_sampleCount,                                                          // VkSampleCountFlagBits        samples;
+                       VK_IMAGE_TILING_OPTIMAL,                                        // VkImageTiling                        tiling;
+                       imageUsage,                                                                     // VkImageUsageFlags            usage;
+                       VK_SHARING_MODE_EXCLUSIVE,                                      // VkSharingMode                        sharingMode;
+                       1u,                                                                                     // deUint32                                     queueFamilyIndexCount;
+                       &queueFamilyIndex,                                                      // const deUint32*                      pQueueFamilyIndices;
+                       VK_IMAGE_LAYOUT_UNDEFINED                                       // VkImageLayout                        initialLayout;
+               };
+
+               m_image = vk::createImage(vkd, vkDevice, &imageCreateInfo, DE_NULL);
+
+               m_imageMemory   = allocator.allocate(getImageMemoryRequirements(vkd, vkDevice, *m_image), MemoryRequirement::Any);
+               VK_CHECK(vkd.bindImageMemory(vkDevice, *m_image, m_imageMemory->getMemory(), m_imageMemory->getOffset()));
+       }
+
+       // Image View
+       {
+               const VkImageViewCreateInfo                             imageViewCreateInfo             =
+               {
+                       VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,       // VkStructureType                              sType;
+                       DE_NULL,                                                                        // const void*                                  pNext;
+                       0u,                                                                                     // VkImageViewCreateFlags               flags;
+                       *m_image,                                                                       // VkImage                                              image;
+                       VK_IMAGE_VIEW_TYPE_2D,                                          // VkImageViewType                              viewType;
+                       m_imageFormat,                                                          // VkFormat                                             format;
+                       makeComponentMappingRGBA(),                                     // VkComponentMapping                   components;
+                       {
+                               VK_IMAGE_ASPECT_COLOR_BIT,                                      // VkImageAspectFlags                   aspectMask;
+                               0u,                                                                                     // deUint32                                             baseMipLevel;
+                               1u,                                                                                     // deUint32                                             mipLevels;
+                               0u,                                                                                     // deUint32                                             baseArrayLayer;
+                               1u,                                                                                     // deUint32                                             arraySize;
+                       },                                                                                      // VkImageSubresourceRange              subresourceRange;
+               };
+
+               m_imageView = vk::createImageView(vkd, vkDevice, &imageViewCreateInfo, DE_NULL);
+       }
+
+       if (m_multisampling)
+       {
+               {
+                       // Resolved Image
+                       const VkImageUsageFlags imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+                       VkImageFormatProperties properties;
+
+                       if ((m_context.getInstanceInterface().getPhysicalDeviceImageFormatProperties(m_context.getPhysicalDevice(),
+                                                                                                                                                                                m_imageFormat,
+                                                                                                                                                                                VK_IMAGE_TYPE_2D,
+                                                                                                                                                                                VK_IMAGE_TILING_OPTIMAL,
+                                                                                                                                                                                imageUsage,
+                                                                                                                                                                                0,
+                                                                                                                                                                                &properties) == VK_ERROR_FORMAT_NOT_SUPPORTED))
+                       {
+                               TCU_THROW(NotSupportedError, "Format not supported");
+                       }
+
+                       const VkImageCreateInfo                                 imageCreateInfo                 =
+                       {
+                               VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,            // VkStructureType                      sType;
+                               DE_NULL,                                                                        // const void*                          pNext;
+                               0u,                                                                                     // VkImageCreateFlags           flags;
+                               VK_IMAGE_TYPE_2D,                                                       // VkImageType                          imageType;
+                               m_imageFormat,                                                          // VkFormat                                     format;
+                               { m_renderWidth, m_renderHeight, 1u },          // VkExtent3D                           extent;
+                               1u,                                                                                     // deUint32                                     mipLevels;
+                               1u,                                                                                     // deUint32                                     arrayLayers;
+                               VK_SAMPLE_COUNT_1_BIT,                                          // VkSampleCountFlagBits        samples;
+                               VK_IMAGE_TILING_OPTIMAL,                                        // VkImageTiling                        tiling;
+                               imageUsage,                                                                     // VkImageUsageFlags            usage;
+                               VK_SHARING_MODE_EXCLUSIVE,                                      // VkSharingMode                        sharingMode;
+                               1u,                                                                                     // deUint32                                     queueFamilyIndexCount;
+                               &queueFamilyIndex,                                                      // const deUint32*                      pQueueFamilyIndices;
+                               VK_IMAGE_LAYOUT_UNDEFINED                                       // VkImageLayout                        initialLayout;
+                       };
+
+                       m_resolvedImage                 = vk::createImage(vkd, vkDevice, &imageCreateInfo, DE_NULL);
+                       m_resolvedImageMemory   = allocator.allocate(getImageMemoryRequirements(vkd, vkDevice, *m_resolvedImage), MemoryRequirement::Any);
+                       VK_CHECK(vkd.bindImageMemory(vkDevice, *m_resolvedImage, m_resolvedImageMemory->getMemory(), m_resolvedImageMemory->getOffset()));
+               }
+
+               // Resolved Image View
+               {
+                       const VkImageViewCreateInfo                             imageViewCreateInfo             =
+                       {
+                               VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,       // VkStructureType                              sType;
+                               DE_NULL,                                                                        // const void*                                  pNext;
+                               0u,                                                                                     // VkImageViewCreateFlags               flags;
+                               *m_resolvedImage,                                                       // VkImage                                              image;
+                               VK_IMAGE_VIEW_TYPE_2D,                                          // VkImageViewType                              viewType;
+                               m_imageFormat,                                                          // VkFormat                                             format;
+                               makeComponentMappingRGBA(),                                     // VkComponentMapping                   components;
+                               {
+                                       VK_IMAGE_ASPECT_COLOR_BIT,                                      // VkImageAspectFlags                   aspectMask;
+                                       0u,                                                                                     // deUint32                                             baseMipLevel;
+                                       1u,                                                                                     // deUint32                                             mipLevels;
+                                       0u,                                                                                     // deUint32                                             baseArrayLayer;
+                                       1u,                                                                                     // deUint32                                             arraySize;
+                               },                                                                                      // VkImageSubresourceRange              subresourceRange;
+                       };
+
+                       m_resolvedImageView = vk::createImageView(vkd, vkDevice, &imageViewCreateInfo, DE_NULL);
+               }
+       }
+
+       // Render Pass
+       {
+               const VkImageLayout                                             imageLayout                             = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+               const VkAttachmentDescription                   attachmentDesc[]                =
+               {
+                       {
+                               0u,                                                                                                     // VkAttachmentDescriptionFlags         flags;
+                               m_imageFormat,                                                                          // VkFormat                                                     format;
+                               m_sampleCount,                                                                          // VkSampleCountFlagBits                        samples;
+                               VK_ATTACHMENT_LOAD_OP_LOAD,                                                                                             // VkAttachmentLoadOp                           loadOp;
+                               VK_ATTACHMENT_STORE_OP_STORE,                                           // VkAttachmentStoreOp                          storeOp;
+                               VK_ATTACHMENT_LOAD_OP_DONT_CARE,                                        // VkAttachmentLoadOp                           stencilLoadOp;
+                               VK_ATTACHMENT_STORE_OP_DONT_CARE,                                       // VkAttachmentStoreOp                          stencilStoreOp;
+                               imageLayout,                                                                            // VkImageLayout                                        initialLayout;
+                               imageLayout,                                                                            // VkImageLayout                                        finalLayout;
+                       },
+                       {
+                               0u,                                                                                                     // VkAttachmentDescriptionFlags         flags;
+                               m_imageFormat,                                                                          // VkFormat                                                     format;
+                               VK_SAMPLE_COUNT_1_BIT,                                                          // VkSampleCountFlagBits                        samples;
+                               VK_ATTACHMENT_LOAD_OP_DONT_CARE,                                        // VkAttachmentLoadOp                           loadOp;
+                               VK_ATTACHMENT_STORE_OP_STORE,                                           // VkAttachmentStoreOp                          storeOp;
+                               VK_ATTACHMENT_LOAD_OP_DONT_CARE,                                        // VkAttachmentLoadOp                           stencilLoadOp;
+                               VK_ATTACHMENT_STORE_OP_DONT_CARE,                                       // VkAttachmentStoreOp                          stencilStoreOp;
+                               imageLayout,                                                                            // VkImageLayout                                        initialLayout;
+                               imageLayout,                                                                            // VkImageLayout                                        finalLayout;
+                       }
+               };
+
+               const VkAttachmentReference                             attachmentRef                   =
+               {
+                       0u,                                                                                                     // deUint32                                                     attachment;
+                       imageLayout,                                                                            // VkImageLayout                                        layout;
+               };
+
+               const VkAttachmentReference                             resolveAttachmentRef    =
+               {
+                       1u,                                                                                                     // deUint32                                                     attachment;
+                       imageLayout,                                                                            // VkImageLayout                                        layout;
+               };
+
+               const VkSubpassDescription                              subpassDesc                             =
+               {
+                       0u,                                                                                                     // VkSubpassDescriptionFlags            flags;
+                       VK_PIPELINE_BIND_POINT_GRAPHICS,                                        // VkPipelineBindPoint                          pipelineBindPoint;
+                       0u,                                                                                                     // deUint32                                                     inputAttachmentCount;
+                       DE_NULL,                                                                                        // const VkAttachmentReference*         pInputAttachments;
+                       1u,                                                                                                     // deUint32                                                     colorAttachmentCount;
+                       &attachmentRef,                                                                         // const VkAttachmentReference*         pColorAttachments;
+                       m_multisampling ? &resolveAttachmentRef : DE_NULL,      // const VkAttachmentReference*         pResolveAttachments;
+                       DE_NULL,                                                                                        // const VkAttachmentReference*         pDepthStencilAttachment;
+                       0u,                                                                                                     // deUint32                                                     preserveAttachmentCount;
+                       DE_NULL,                                                                                        // const VkAttachmentReference*         pPreserveAttachments;
+               };
+
+               const VkRenderPassCreateInfo                    renderPassCreateInfo    =
+               {
+                       VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,                      // VkStructureType                                      sType;
+                       DE_NULL,                                                                                        // const void*                                          pNext;
+                       0u,                                                                                                     // VkRenderPassCreateFlags                      flags;
+                       m_multisampling ? 2u : 1u,                                                      // deUint32                                                     attachmentCount;
+                       attachmentDesc,                                                                         // const VkAttachmentDescription*       pAttachments;
+                       1u,                                                                                                     // deUint32                                                     subpassCount;
+                       &subpassDesc,                                                                           // const VkSubpassDescription*          pSubpasses;
+                       0u,                                                                                                     // deUint32                                                     dependencyCount;
+                       DE_NULL,                                                                                        // const VkSubpassDependency*           pDependencies;
+               };
+
+               m_renderPass =  createRenderPass(vkd, vkDevice, &renderPassCreateInfo, DE_NULL);
+       }
+
+       // Vertex index buffer
+       {
+               const VkBufferCreateInfo                        indexBufferParams               =
+               {
+                       VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,           // VkStructureType              sType;
+                       DE_NULL,                                                                        // const void*                  pNext;
+                       0u,                                                                                     // VkBufferCreateFlags  flags;
+                       s_vertexIndexBufferSize,                                        // VkDeviceSize                 size;
+                       VK_BUFFER_USAGE_INDEX_BUFFER_BIT,                       // VkBufferUsageFlags   usage;
+                       VK_SHARING_MODE_EXCLUSIVE,                                      // VkSharingMode                sharingMode;
+                       1u,                                                                                     // deUint32                             queueFamilyCount;
+                       &queueFamilyIndex                                                       // const deUint32*              pQueueFamilyIndices;
+               };
+
+               m_vertexIndexBuffer                     = createBuffer(vkd, vkDevice, &indexBufferParams);
+               m_vertexIndexBufferMemory       = allocator.allocate(getBufferMemoryRequirements(vkd, vkDevice, *m_vertexIndexBuffer), MemoryRequirement::HostVisible);
+
+               VK_CHECK(vkd.bindBufferMemory(vkDevice, *m_vertexIndexBuffer, m_vertexIndexBufferMemory->getMemory(), m_vertexIndexBufferMemory->getOffset()));
+
+               // Load vertices into vertex buffer
+               deMemcpy(m_vertexIndexBufferMemory->getHostPtr(), s_vertexIndices, s_vertexIndexBufferSize);
+               flushMappedMemoryRange(vkd, vkDevice, m_vertexIndexBufferMemory->getMemory(), m_vertexIndexBufferMemory->getOffset(), s_vertexIndexBufferSize);
+       }
+
+       // FrameBuffer
+       {
+               const VkImageView                                               attachments[]                   =
+               {
+                       *m_imageView,
+                       *m_resolvedImageView,
+               };
+
+               const VkFramebufferCreateInfo                   framebufferCreateInfo   =
+               {
+                       VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,      // VkStructureType                      sType;
+                       DE_NULL,                                                                        // const void*                          pNext;
+                       0u,                                                                                     // VkFramebufferCreateFlags     flags;
+                       *m_renderPass,                                                          // VkRenderPass                         renderPass;
+                       m_multisampling ? 2u : 1u,                                      // deUint32                                     attachmentCount;
+                       attachments,                                                            // const VkImageView*           pAttachments;
+                       m_renderWidth,                                                          // deUint32                                     width;
+                       m_renderHeight,                                                         // deUint32                                     height;
+                       1u,                                                                                     // deUint32                                     layers;
+               };
+
+               m_frameBuffer = createFramebuffer(vkd, vkDevice, &framebufferCreateInfo, DE_NULL);
+       }
+
+       // Uniform Buffer
+       {
+               const VkBufferCreateInfo                                bufferCreateInfo                =
+               {
+                       VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,           // VkStructureType              sType;
+                       DE_NULL,                                                                        // const void*                  pNext;
+                       0u,                                                                                     // VkBufferCreateFlags  flags;
+                       m_uniformBufferSize,                                            // VkDeviceSize                 size;
+                       VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,                     // VkBufferUsageFlags   usage;
+                       VK_SHARING_MODE_EXCLUSIVE,                                      // VkSharingMode                sharingMode;
+                       1u,                                                                                     // deUint32                             queueFamilyIndexCount;
+                       &queueFamilyIndex                                                       // const deUint32*              pQueueFamilyIndices;
+               };
+
+               m_uniformBuffer                 = createBuffer(vkd, vkDevice, &bufferCreateInfo);
+               m_uniformBufferMemory   = allocator.allocate(getBufferMemoryRequirements(vkd, vkDevice, *m_uniformBuffer), MemoryRequirement::HostVisible);
+
+               VK_CHECK(vkd.bindBufferMemory(vkDevice, *m_uniformBuffer, m_uniformBufferMemory->getMemory(), m_uniformBufferMemory->getOffset()));
+       }
+
+       // DescriptorPool
+       {
+               DescriptorPoolBuilder                                   descriptorPoolBuilder;
+
+               descriptorPoolBuilder.addType(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER);
+               descriptorPoolBuilder.addType(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER);
+               m_descriptorPool = descriptorPoolBuilder.build(vkd, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 2u);
+       }
+
+       // Fence
+       {
+               const VkFenceCreateInfo                                 fenceParams                                     =
+               {
+                       VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,    // VkStructureType              sType;
+                       DE_NULL,                                                                // const void*                  pNext;
+                       VK_FENCE_CREATE_SIGNALED_BIT                    // VkFenceCreateFlags   flags;
+               };
+
+               m_fence = createFence(vkd, vkDevice, &fenceParams);
+       }
+
+       // Result Buffer
+       {
+               const VkBufferCreateInfo                                bufferCreateInfo                =
+               {
+                       VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,           // VkStructureType              sType;
+                       DE_NULL,                                                                        // const void*                  pNext;
+                       0u,                                                                                     // VkBufferCreateFlags  flags;
+                       m_resultBufferSize,                                                     // VkDeviceSize                 size;
+                       VK_BUFFER_USAGE_TRANSFER_DST_BIT,                       // VkBufferUsageFlags   usage;
+                       VK_SHARING_MODE_EXCLUSIVE,                                      // VkSharingMode                sharingMode;
+                       1u,                                                                                     // deUint32                             queueFamilyIndexCount;
+                       &queueFamilyIndex                                                       // const deUint32*              pQueueFamilyIndices;
+               };
+
+               m_resultBuffer                  = createBuffer(vkd, vkDevice, &bufferCreateInfo);
+               m_resultBufferMemory    = allocator.allocate(getBufferMemoryRequirements(vkd, vkDevice, *m_resultBuffer), MemoryRequirement::HostVisible);
+
+               VK_CHECK(vkd.bindBufferMemory(vkDevice, *m_resultBuffer, m_resultBufferMemory->getMemory(), m_resultBufferMemory->getOffset()));
+       }
+
+       clearImage(*m_image);
+       if(m_multisampling)
+               clearImage(*m_resolvedImage);
+}
+
+TextureRenderer::~TextureRenderer (void)
+{
+}
+
+void TextureRenderer::clearImage(VkImage image)
+{
+       const DeviceInterface&                  vkd                                     = m_context.getDeviceInterface();
+       const VkDevice                                  vkDevice                        = m_context.getDevice();
+       Move<VkCommandBuffer>                   commandBuffer;
+       const VkQueue                                   queue                           = m_context.getUniversalQueue();
+
+       const VkImageSubresourceRange   subResourcerange        =
+       {
+               VK_IMAGE_ASPECT_COLOR_BIT,              // VkImageAspectFlags   aspectMask;
+               0,                                                              // deUint32                             baseMipLevel;
+               1,                                                              // deUint32                             levelCount;
+               0,                                                              // deUint32                             baseArrayLayer;
+               1                                                               // deUint32                             layerCount;
+       };
+
+       const VkCommandBufferAllocateInfo               cmdBufferAllocateInfo   =
+       {
+               VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,                         // VkStructureType             sType;
+               DE_NULL,                                                                                                        // const void*                 pNext;
+               *m_commandPool,                                                                                         // VkCommandPool               commandPool;
+               VK_COMMAND_BUFFER_LEVEL_PRIMARY,                                                        // VkCommandBufferLevel        level;
+               1                                                                                                                       // deUint32                    commandBufferCount;
+       };
+
+       commandBuffer = allocateCommandBuffer(vkd, vkDevice, &cmdBufferAllocateInfo);
+
+       const VkCommandBufferBeginInfo          cmdBufferBeginInfo              =
+       {
+               VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,    // VkStructureType                                                      sType;
+               DE_NULL,                                                                                // const void*                                                          pNext;
+               0u,                                                                                             // VkCmdBufferOptimizeFlags                                     flags;
+               DE_NULL                                                                                 // const VkCommandBufferInheritanceInfo*        pInheritanceInfo;
+       };
+
+       VK_CHECK(vkd.beginCommandBuffer(*commandBuffer, &cmdBufferBeginInfo));
+
+       addImageTransitionBarrier(*commandBuffer, image,
+                                                         VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,                            // VkPipelineStageFlags         srcStageMask
+                                                         VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,                           // VkPipelineStageFlags         dstStageMask
+                                                         0,                                                                                            // VkAccessFlags                        srcAccessMask
+                                                         VK_ACCESS_TRANSFER_WRITE_BIT,                                         // VkAccessFlags                        dstAccessMask
+                                                         VK_IMAGE_LAYOUT_UNDEFINED,                                            // VkImageLayout                        oldLayout;
+                                                         VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);                        // VkImageLayout                        newLayout;
+
+       VkClearColorValue color = makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f).color;
+       vkd.cmdClearColorImage(*commandBuffer, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &color, 1, &subResourcerange);
+
+       addImageTransitionBarrier(*commandBuffer, image,
+                                                         VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,                            // VkPipelineStageFlags         srcStageMask
+                                                         VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,                           // VkPipelineStageFlags         dstStageMask
+                                                         VK_ACCESS_TRANSFER_WRITE_BIT,                                         // VkAccessFlags                        srcAccessMask
+                                                         VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                         // VkAccessFlags                        dstAccessMask
+                                                         VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,                         // VkImageLayout                        oldLayout;
+                                                         VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL);            // VkImageLayout                        newLayout;
+
+       VK_CHECK(vkd.endCommandBuffer(*commandBuffer));
+
+       const VkSubmitInfo                                      submitInfo                              =
+       {
+               VK_STRUCTURE_TYPE_SUBMIT_INFO,                  // VkStructureType                              sType;
+               DE_NULL,                                                                // const void*                                  pNext;
+               0u,                                                                             // deUint32                                             waitSemaphoreCount;
+               DE_NULL,                                                                // const VkSemaphore*                   pWaitSemaphores;
+               DE_NULL,                                                                // const VkPipelineStageFlags*  pWaitDstStageMask;
+               1u,                                                                             // deUint32                                             commandBufferCount;
+               &commandBuffer.get(),                                   // const VkCommandBuffer*               pCommandBuffers;
+               0u,                                                                             // deUint32                                             signalSemaphoreCount;
+               DE_NULL,                                                                // const VkSemaphore*                   pSignalSemaphores;
+       };
+
+       VK_CHECK(vkd.resetFences(vkDevice, 1, &m_fence.get()));
+       VK_CHECK(vkd.queueSubmit(queue, 1, &submitInfo, *m_fence));
+       VK_CHECK(vkd.waitForFences(vkDevice, 1, &m_fence.get(), true, ~(0ull) /* infinity */));
+}
+
+void TextureRenderer::add2DTexture (const TestTexture2DSp& texture)
+{
+       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_2D)));
+}
+
+void TextureRenderer::addCubeTexture (const TestTextureCubeSp& texture)
+{
+       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_CUBE_MAP)));
+}
+
+void TextureRenderer::add2DArrayTexture (const TestTexture2DArraySp& texture)
+{
+       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_2D_ARRAY)));
+}
+
+void TextureRenderer::add3DTexture (const TestTexture3DSp& texture)
+{
+       m_textureBindings.push_back(TextureBindingSp(new TextureBinding(m_context, texture, TextureBinding::TYPE_3D)));
+}
+
+const pipeline::TestTexture2D& TextureRenderer::get2DTexture (int textureIndex) const
+{
+       DE_ASSERT(m_textureBindings.size() > (size_t)textureIndex);
+       DE_ASSERT(m_textureBindings[textureIndex]->getType() == TextureBinding::TYPE_2D);
+
+       return dynamic_cast<const pipeline::TestTexture2D&>(m_textureBindings[textureIndex]->getTestTexture());
+}
+
+const pipeline::TestTextureCube& TextureRenderer::getCubeTexture (int textureIndex) const
+{
+       DE_ASSERT(m_textureBindings.size() > (size_t)textureIndex);
+       DE_ASSERT(m_textureBindings[textureIndex]->getType() == TextureBinding::TYPE_CUBE_MAP);
+
+       return dynamic_cast<const pipeline::TestTextureCube&>(m_textureBindings[textureIndex]->getTestTexture());
+}
+
+const pipeline::TestTexture2DArray& TextureRenderer::get2DArrayTexture (int textureIndex) const
+{
+       DE_ASSERT(m_textureBindings.size() > (size_t)textureIndex);
+       DE_ASSERT(m_textureBindings[textureIndex]->getType() == TextureBinding::TYPE_2D_ARRAY);
+
+       return dynamic_cast<const pipeline::TestTexture2DArray&>(m_textureBindings[textureIndex]->getTestTexture());
+}
+
+const pipeline::TestTexture3D& TextureRenderer::get3DTexture (int textureIndex) const
+{
+       DE_ASSERT(m_textureBindings.size() > (size_t)textureIndex);
+       DE_ASSERT(m_textureBindings[textureIndex]->getType() == TextureBinding::TYPE_3D);
+
+       return dynamic_cast<const pipeline::TestTexture3D&>(m_textureBindings[textureIndex]->getTestTexture());
+}
+
+void TextureRenderer::setViewport (float viewportX, float viewportY, float viewportW, float viewportH)
+{
+       m_viewportHeight = viewportH;
+       m_viewportWidth = viewportW;
+       m_viewportOffsetX = viewportX;
+       m_viewportOffsetY = viewportY;
+}
+
+TextureBinding* TextureRenderer::getTextureBinding (int textureIndex) const
+{
+       DE_ASSERT(m_textureBindings.size() > (size_t)textureIndex);
+       return m_textureBindings[textureIndex].get();
+}
+
+deUint32 TextureRenderer::getRenderWidth (void) const
+{
+       return m_renderWidth;
+}
+
+deUint32 TextureRenderer::getRenderHeight (void) const
+{
+       return m_renderHeight;
+}
+
+Move<VkDescriptorSet> TextureRenderer::makeDescriptorSet (const VkDescriptorPool descriptorPool, const VkDescriptorSetLayout setLayout) const
+{
+       const DeviceInterface&                                          vkd                                             = m_context.getDeviceInterface();
+       const VkDevice                                                          vkDevice                                = m_context.getDevice();
+
+       const VkDescriptorSetAllocateInfo                       allocateParams                  =
+       {
+                       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,         // VkStructureType                                      sType
+                       DE_NULL,                                                                                        // const void*                                          pNext
+                       descriptorPool,                                                                         // VkDescriptorPool                                     descriptorPool
+                       1u,                                                                                                     // deUint32                                                     descriptorSetCount
+                       &setLayout,                                                                                     // const VkDescriptorSetLayout*         pSetLayouts
+       };
+       return allocateDescriptorSet(vkd, vkDevice, &allocateParams);
+}
+
+void TextureRenderer::addImageTransitionBarrier(VkCommandBuffer commandBuffer, VkImage image, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkImageLayout oldLayout, VkImageLayout newLayout) const
+{
+       const DeviceInterface&                  vkd                                     = m_context.getDeviceInterface();
+
+       const VkImageSubresourceRange   subResourcerange        =
+       {
+               VK_IMAGE_ASPECT_COLOR_BIT,              // VkImageAspectFlags   aspectMask;
+               0,                                                              // deUint32                             baseMipLevel;
+               1,                                                              // deUint32                             levelCount;
+               0,                                                              // deUint32                             baseArrayLayer;
+               1                                                               // deUint32                             layerCount;
+       };
+
+       const VkImageMemoryBarrier              imageBarrier            =
+       {
+               VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,         // VkStructureType                      sType;
+               DE_NULL,                                                                        // const void*                          pNext;
+               srcAccessMask,                                                          // VkAccessFlags                        srcAccessMask;
+               dstAccessMask,                                                          // VkAccessFlags                        dstAccessMask;
+               oldLayout,                                                                      // VkImageLayout                        oldLayout;
+               newLayout,                                                                      // VkImageLayout                        newLayout;
+               VK_QUEUE_FAMILY_IGNORED,                                        // deUint32                                     srcQueueFamilyIndex;
+               VK_QUEUE_FAMILY_IGNORED,                                        // deUint32                                     destQueueFamilyIndex;
+               image,                                                                          // VkImage                                      image;
+               subResourcerange                                                        // VkImageSubresourceRange      subresourceRange;
+       };
+
+       vkd.cmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, 0, 0, DE_NULL, 0, DE_NULL, 1, &imageBarrier);
+}
+
+
+void TextureRenderer::renderQuad (tcu::Surface& result, int texUnit, const float* texCoord, TextureType texType)
+{
+       renderQuad(result, texUnit, texCoord, ReferenceParams(texType));
+}
+
+void TextureRenderer::renderQuad (tcu::Surface& result, int texUnit, const float* texCoord, const ReferenceParams& params)
+{
+       const DeviceInterface&          vkd                                             = m_context.getDeviceInterface();
+       const VkDevice                          vkDevice                                = m_context.getDevice();
+       const VkQueue                           queue                                   = m_context.getUniversalQueue();
+       const deUint32                          queueFamilyIndex                = m_context.getUniversalQueueFamilyIndex();
+       Allocator&                                      allocator                               = m_context.getDefaultAllocator();
+
+       tcu::Vec4                                       wCoord                                  = params.flags & RenderParams::PROJECTED ? params.w : tcu::Vec4(1.0f);
+       bool                                            useBias                                 = !!(params.flags & RenderParams::USE_BIAS);
+       bool                                            logUniforms                             = !!(params.flags & RenderParams::LOG_UNIFORMS);
+
+       // Render quad with texture.
+       float                                           position[]                              =
+       {
+               -1.0f*wCoord.x(), -1.0f*wCoord.x(), 0.0f, wCoord.x(),
+               -1.0f*wCoord.y(), +1.0f*wCoord.y(), 0.0f, wCoord.y(),
+               +1.0f*wCoord.z(), -1.0f*wCoord.z(), 0.0f, wCoord.z(),
+               +1.0f*wCoord.w(), +1.0f*wCoord.w(), 0.0f, wCoord.w()
+       };
+
+       Program                                         progSpec                                = PROGRAM_LAST;
+       int                                                     numComps                                = 0;
+
+       if (params.texType == TEXTURETYPE_2D)
+       {
+               numComps = 2;
+
+               switch (params.samplerType)
+               {
+                       case SAMPLERTYPE_FLOAT:         progSpec = useBias ? PROGRAM_2D_FLOAT_BIAS      : PROGRAM_2D_FLOAT;             break;
+                       case SAMPLERTYPE_INT:           progSpec = useBias ? PROGRAM_2D_INT_BIAS        : PROGRAM_2D_INT;               break;
+                       case SAMPLERTYPE_UINT:          progSpec = useBias ? PROGRAM_2D_UINT_BIAS       : PROGRAM_2D_UINT;              break;
+                       case SAMPLERTYPE_SHADOW:        progSpec = useBias ? PROGRAM_2D_SHADOW_BIAS     : PROGRAM_2D_SHADOW;    break;
+                       default:                                        DE_ASSERT(false);
+               }
+       }
+       else if (params.texType == TEXTURETYPE_1D)
+       {
+               numComps = 1;
+
+               switch (params.samplerType)
+               {
+                       case SAMPLERTYPE_FLOAT:         progSpec = useBias ? PROGRAM_1D_FLOAT_BIAS      : PROGRAM_1D_FLOAT;             break;
+                       case SAMPLERTYPE_INT:           progSpec = useBias ? PROGRAM_1D_INT_BIAS        : PROGRAM_1D_INT;               break;
+                       case SAMPLERTYPE_UINT:          progSpec = useBias ? PROGRAM_1D_UINT_BIAS       : PROGRAM_1D_UINT;              break;
+                       case SAMPLERTYPE_SHADOW:        progSpec = useBias ? PROGRAM_1D_SHADOW_BIAS     : PROGRAM_1D_SHADOW;    break;
+                       default:                                        DE_ASSERT(false);
+               }
+       }
+       else if (params.texType == TEXTURETYPE_CUBE)
+       {
+               numComps = 3;
+
+               switch (params.samplerType)
+               {
+                       case SAMPLERTYPE_FLOAT:         progSpec = useBias ? PROGRAM_CUBE_FLOAT_BIAS    : PROGRAM_CUBE_FLOAT;   break;
+                       case SAMPLERTYPE_INT:           progSpec = useBias ? PROGRAM_CUBE_INT_BIAS              : PROGRAM_CUBE_INT;             break;
+                       case SAMPLERTYPE_UINT:          progSpec = useBias ? PROGRAM_CUBE_UINT_BIAS             : PROGRAM_CUBE_UINT;    break;
+                       case SAMPLERTYPE_SHADOW:        progSpec = useBias ? PROGRAM_CUBE_SHADOW_BIAS   : PROGRAM_CUBE_SHADOW;  break;
+                       default:                                        DE_ASSERT(false);
+               }
+       }
+       else if (params.texType == TEXTURETYPE_3D)
+       {
+               numComps = 3;
+
+               switch (params.samplerType)
+               {
+                       case SAMPLERTYPE_FLOAT:         progSpec = useBias ? PROGRAM_3D_FLOAT_BIAS      : PROGRAM_3D_FLOAT;             break;
+                       case SAMPLERTYPE_INT:           progSpec = useBias ? PROGRAM_3D_INT_BIAS        : PROGRAM_3D_INT;               break;
+                       case SAMPLERTYPE_UINT:          progSpec = useBias ? PROGRAM_3D_UINT_BIAS       : PROGRAM_3D_UINT;              break;
+                       default:                                        DE_ASSERT(false);
+               }
+       }
+       else if (params.texType == TEXTURETYPE_2D_ARRAY)
+       {
+               DE_ASSERT(!useBias); // \todo [2012-02-17 pyry] Support bias.
+
+               numComps = 3;
+
+               switch (params.samplerType)
+               {
+                       case SAMPLERTYPE_FLOAT:         progSpec = PROGRAM_2D_ARRAY_FLOAT;      break;
+                       case SAMPLERTYPE_INT:           progSpec = PROGRAM_2D_ARRAY_INT;        break;
+                       case SAMPLERTYPE_UINT:          progSpec = PROGRAM_2D_ARRAY_UINT;       break;
+                       case SAMPLERTYPE_SHADOW:        progSpec = PROGRAM_2D_ARRAY_SHADOW;     break;
+                       default:                                        DE_ASSERT(false);
+               }
+       }
+       else if (params.texType == TEXTURETYPE_CUBE_ARRAY)
+       {
+               DE_ASSERT(!useBias);
+
+               numComps = 4;
+
+               switch (params.samplerType)
+               {
+                       case SAMPLERTYPE_FLOAT:         progSpec = PROGRAM_CUBE_ARRAY_FLOAT;    break;
+                       case SAMPLERTYPE_INT:           progSpec = PROGRAM_CUBE_ARRAY_INT;              break;
+                       case SAMPLERTYPE_UINT:          progSpec = PROGRAM_CUBE_ARRAY_UINT;             break;
+                       case SAMPLERTYPE_SHADOW:        progSpec = PROGRAM_CUBE_ARRAY_SHADOW;   break;
+                       default:                                        DE_ASSERT(false);
+               }
+       }
+       else if (params.texType == TEXTURETYPE_1D_ARRAY)
+       {
+               DE_ASSERT(!useBias); // \todo [2012-02-17 pyry] Support bias.
+
+               numComps = 2;
+
+               switch (params.samplerType)
+               {
+                       case SAMPLERTYPE_FLOAT:         progSpec = PROGRAM_1D_ARRAY_FLOAT;      break;
+                       case SAMPLERTYPE_INT:           progSpec = PROGRAM_1D_ARRAY_INT;        break;
+                       case SAMPLERTYPE_UINT:          progSpec = PROGRAM_1D_ARRAY_UINT;       break;
+                       case SAMPLERTYPE_SHADOW:        progSpec = PROGRAM_1D_ARRAY_SHADOW;     break;
+                       default:                                        DE_ASSERT(false);
+               }
+       }
+       else if (params.texType == TEXTURETYPE_BUFFER)
+       {
+               numComps = 1;
+
+               switch (params.samplerType)
+               {
+                       case SAMPLERTYPE_FETCH_FLOAT:   progSpec = PROGRAM_BUFFER_FLOAT;        break;
+                       case SAMPLERTYPE_FETCH_INT:             progSpec = PROGRAM_BUFFER_INT;          break;
+                       case SAMPLERTYPE_FETCH_UINT:    progSpec = PROGRAM_BUFFER_UINT;         break;
+                       default:                                                DE_ASSERT(false);
+               }
+       }
+       else
+               DE_ASSERT(DE_FALSE);
+
+       Unique<VkShaderModule>                                  vertexShaderModule              (createShaderModule(vkd, vkDevice, m_context.getBinaryCollection().get("vertext_" + std::string(getProgramName(progSpec))), 0));
+       Unique<VkShaderModule>                                  fragmentShaderModule    (createShaderModule(vkd, vkDevice, m_context.getBinaryCollection().get("fragment_" + std::string(getProgramName(progSpec))), 0));
+
+       Move<VkSampler>                                                 sampler;
+       Move<VkDescriptorSet>                                   descriptorSet[2];
+       Move<VkDescriptorSetLayout>                             descriptorSetLayout[2];
+       Move<VkPipelineLayout>                                  pipelineLayout;
+
+       Move<VkCommandBuffer>                                   commandBuffer;
+       Move<VkPipeline>                                                graphicsPipeline;
+       Move<VkBuffer>                                                  vertexBuffer;
+       de::MovePtr<Allocation>                                 vertexBufferMemory;
+       const deUint32                                                  positionDataSize                = deUint32(sizeof(float) * 4 * 4);
+       const deUint32                                                  textureCoordDataSize    = deUint32(sizeof(float) * numComps * 4);
+
+       const VkPhysicalDeviceProperties                properties                              = m_context.getDeviceProperties();
+
+       if (positionDataSize > properties.limits.maxVertexInputAttributeOffset)
+       {
+               std::stringstream message;
+               message << "Larger vertex input attribute offset is needed (" << positionDataSize << ") than the available maximum (" << properties.limits.maxVertexInputAttributeOffset << ").";
+               TCU_THROW(NotSupportedError, message.str().c_str());
+       }
+
+       // Create Graphics Pipeline
+       {
+               const VkPipelineShaderStageCreateInfo   shaderStageParams[2]    =
+               {
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,            // VkStructureType                                      sType;
+                               DE_NULL,                                                                                                        // const void*                                          pNext;
+                               0,                                                                                                                      // VkPipelineShaderStageCreateFlags flags;
+                               VK_SHADER_STAGE_VERTEX_BIT,                                                                     // VkShaderStage                                        stage;
+                               *vertexShaderModule,                                                                            // VkShaderModule                                       shader;
+                               "main",                                                                                                         // const char*                                          pName;
+                               DE_NULL                                                                                                         // const VkSpecializationInfo*          pSpecializationInfo;
+                       },
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,            // VkStructureType                                      sType;
+                               DE_NULL,                                                                                                        // const void*                                          pNext;
+                               0,                                                                                                                      // VkPipelineShaderStageCreateFlags flags;
+                               VK_SHADER_STAGE_FRAGMENT_BIT,                                                           // VkShaderStage                                        stage;
+                               *fragmentShaderModule,                                                                          // VkShaderModule                                       shader;
+                               "main",                                                                                                         // const char*                                          pName;
+                               DE_NULL                                                                                                         // const VkSpecializationInfo*          pSpecializationInfo;
+                       }
+               };
+
+               const deUint32                                                  vertexPositionStrideSize                        = deUint32(sizeof(tcu::Vec4));
+               const deUint32                                                  vertexTextureStrideSize                         = deUint32(numComps * sizeof(float));
+
+               const VkVertexInputBindingDescription   vertexInputBindingDescription[2]        =
+               {
+                       {
+                               0u,                                                             // deUint32                                     binding;
+                               vertexPositionStrideSize,               // deUint32                                     strideInBytes;
+                               VK_VERTEX_INPUT_RATE_VERTEX             // VkVertexInputStepRate        stepRate;
+                       },
+                       {
+                               1u,                                                             // deUint32                                     binding;
+                               vertexTextureStrideSize,                // deUint32                                     strideInBytes;
+                               VK_VERTEX_INPUT_RATE_VERTEX             // VkVertexInputStepRate        stepRate;
+                       }
+               };
+
+               VkFormat                                                                textureCoordinateFormat                 = VK_FORMAT_R32G32B32A32_SFLOAT;
+
+               switch (numComps) {
+                       case 1: textureCoordinateFormat = VK_FORMAT_R32_SFLOAT;                         break;
+                       case 2: textureCoordinateFormat = VK_FORMAT_R32G32_SFLOAT;                      break;
+                       case 3: textureCoordinateFormat = VK_FORMAT_R32G32B32_SFLOAT;           break;
+                       case 4: textureCoordinateFormat = VK_FORMAT_R32G32B32A32_SFLOAT;        break;
+                       default:
+                               DE_ASSERT(false);
+               }
+
+               const VkVertexInputAttributeDescription vertexInputAttributeDescriptions[2] =
+               {
+                       {
+                               0u,                                                                     // deUint32     location;
+                               0u,                                                                     // deUint32     binding;
+                               VK_FORMAT_R32G32B32A32_SFLOAT,          // VkFormat     format;
+                               0u                                                                      // deUint32     offsetInBytes;
+                       },
+                       {
+                               1u,                                                                     // deUint32     location;
+                               1u,                                                                     // deUint32     binding;
+                               textureCoordinateFormat,                        // VkFormat     format;
+                               positionDataSize                                        // deUint32     offsetInBytes;
+                       }
+               };
+
+               const VkPipelineVertexInputStateCreateInfo      vertexInputStateParams =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,              // VkStructureType                                                      sType;
+                       DE_NULL,                                                                                                                // const void*                                                          pNext;
+                       0,                                                                                                                              // VkPipelineVertexInputStateCreateFlags        flags;
+                       2u,                                                                                                                             // deUint32                                                                     bindingCount;
+                       vertexInputBindingDescription,                                                                  // const VkVertexInputBindingDescription*       pVertexBindingDescriptions;
+                       2u,                                                                                                                             // deUint32                                                                     attributeCount;
+                       vertexInputAttributeDescriptions                                                                // const VkVertexInputAttributeDescription*     pVertexAttributeDescriptions;
+               };
+
+               const VkPipelineInputAssemblyStateCreateInfo    inputAssemblyStateParams =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,    // VkStructureType                                                      sType;
+                       DE_NULL,                                                                                                                // const void*                                                          pNext;
+                       0,                                                                                                                              // VkPipelineInputAssemblyStateCreateFlags      flags;
+                       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,                                                    // VkPrimitiveTopology                                          topology;
+                       VK_FALSE                                                                                                                // VkBool32                                                                     primitiveRestartEnable;
+               };
+
+               const VkViewport                                                viewport =
+               {
+                       m_viewportOffsetX,                      // float        originX;
+                       m_viewportOffsetY,                      // float        originY;
+                       m_viewportWidth,                        // float        width;
+                       m_viewportHeight,                       // float        height;
+                       0.0f,                                           // float        minDepth;
+                       1.0f                                            // float        maxDepth;
+               };
+
+               const VkRect2D                                                  scissor =
+               {
+                       { 0, 0 },                                                                                                               // VkOffset2D  offset;
+                       { m_renderWidth, m_renderHeight }                                                               // VkExtent2D  extent;
+               };
+
+               const VkPipelineViewportStateCreateInfo viewportStateParams =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,                  // VkStructureType                                              sType;
+                       DE_NULL,                                                                                                                // const void*                                                  pNext;
+                       0,                                                                                                                              // VkPipelineViewportStateCreateFlags   flags;
+                       1u,                                                                                                                             // deUint32                                                             viewportCount;
+                       &viewport,                                                                                                              // const VkViewport*                                    pViewports;
+                       1u,                                                                                                                             // deUint32                                                             scissorCount;
+                       &scissor                                                                                                                // const VkRect2D*                                              pScissors;
+               };
+
+               const VkPipelineMultisampleStateCreateInfo multisampleStateParams =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,               // VkStructureType                                                      sType;
+                       DE_NULL,                                                                                                                // const void*                                                          pNext;
+                       0u,                                                                                                                             // VkPipelineMultisampleStateCreateFlags        flags;
+                       m_sampleCount,                                                                                                  // VkSampleCountFlagBits                                        rasterizationSamples;
+                       VK_FALSE,                                                                                                               // VkBool32                                                                     sampleShadingEnable;
+                       0.0f,                                                                                                                   // float                                                                        minSampleShading;
+                       DE_NULL,                                                                                                                // const VkSampleMask*                                          pSampleMask;
+                       VK_FALSE,                                                                                                               // VkBool32                                                                     alphaToCoverageEnable;
+                       VK_FALSE                                                                                                                // VkBool32                                                                     alphaToOneEnable;
+               };
+
+               const VkPipelineRasterizationStateCreateInfo    rasterizationStateCreateInfo    =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,             // VkStructureType                                                      sType;
+                       DE_NULL,                                                                                                                // const void*                                                          pNext;
+                       0,                                                                                                                              // VkPipelineRasterizationStateCreateFlags      flags;
+                       VK_FALSE,                                                                                                               // VkBool32                                                                     depthClipEnable;
+                       VK_FALSE,                                                                                                               // VkBool32                                                                     rasterizerDiscardEnable;
+                       VK_POLYGON_MODE_FILL,                                                                                   // VkFillMode                                                           fillMode;
+                       VK_CULL_MODE_NONE,                                                                                              // VkCullMode                                                           cullMode;
+                       VK_FRONT_FACE_COUNTER_CLOCKWISE,                                                                // VkFrontFace                                                          frontFace;
+                       VK_FALSE,                                                                                                               // VkBool32                                                                     depthBiasEnable;
+                       0.0f,                                                                                                                   // float                                                                        depthBias;
+                       0.0f,                                                                                                                   // float                                                                        depthBiasClamp;
+                       0.0f,                                                                                                                   // float                                                                        slopeScaledDepthBias;
+                       1.0f,                                                                                                                   // float                                                                        lineWidth;
+               };
+
+               const VkPipelineColorBlendAttachmentState       colorBlendAttachmentState       =
+               {
+                       VK_FALSE,                                                                                                       // VkBool32                     blendEnable;
+                       VK_BLEND_FACTOR_ONE,                                                                            // VkBlend                      srcBlendColor;
+                       VK_BLEND_FACTOR_ZERO,                                                                           // VkBlend                      destBlendColor;
+                       VK_BLEND_OP_ADD,                                                                                        // VkBlendOp            blendOpColor;
+                       VK_BLEND_FACTOR_ONE,                                                                            // VkBlend                      srcBlendAlpha;
+                       VK_BLEND_FACTOR_ZERO,                                                                           // VkBlend                      destBlendAlpha;
+                       VK_BLEND_OP_ADD,                                                                                        // VkBlendOp            blendOpAlpha;
+                       (VK_COLOR_COMPONENT_R_BIT |
+                        VK_COLOR_COMPONENT_G_BIT |
+                        VK_COLOR_COMPONENT_B_BIT |
+                        VK_COLOR_COMPONENT_A_BIT)                                                                      // VkChannelFlags       channelWriteMask;
+               };
+
+               const VkPipelineColorBlendStateCreateInfo       colorBlendStateParams           =
+               {
+                       VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,       // VkStructureType                                                              sType;
+                       DE_NULL,                                                                                                        // const void*                                                                  pNext;
+                       0,                                                                                                                      // VkPipelineColorBlendStateCreateFlags                 flags;
+                       VK_FALSE,                                                                                                       // VkBool32                                                                             logicOpEnable;
+                       VK_LOGIC_OP_COPY,                                                                                       // VkLogicOp                                                                    logicOp;
+                       1u,                                                                                                                     // deUint32                                                                             attachmentCount;
+                       &colorBlendAttachmentState,                                                                     // const VkPipelineColorBlendAttachmentState*   pAttachments;
+                       { 0.0f, 0.0f, 0.0f, 0.0f },                                                                     // float                                                                                blendConst[4];
+               };
+
+               const VkSamplerCreateInfo                                       samplerCreateInfo                       = mapSampler(params.sampler, m_textureBindings[texUnit]->getTestTexture().getTextureFormat(), params.minLod, params.maxLod);
+
+               if (samplerCreateInfo.magFilter == VK_FILTER_LINEAR || samplerCreateInfo.minFilter == VK_FILTER_LINEAR || samplerCreateInfo.mipmapMode == VK_SAMPLER_MIPMAP_MODE_LINEAR)
+               {
+                       const VkFormatProperties formatProperties = getPhysicalDeviceFormatProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice(), mapTextureFormat(m_textureBindings[texUnit]->getTestTexture().getTextureFormat()));
+                       if (!(formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT))
+                               TCU_THROW(NotSupportedError, "Linear filtering for this image format is not supported");
+               }
+
+               sampler = createSampler(vkd, vkDevice, &samplerCreateInfo);
+
+               descriptorSetLayout[0] = DescriptorSetLayoutBuilder()
+                                                                                       .addSingleBinding(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT)
+                                                                                               .build(vkd, vkDevice);
+
+               descriptorSetLayout[1] = DescriptorSetLayoutBuilder()
+                                                                                       .addSingleSamplerBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, &sampler.get())
+                                                                                       .build(vkd, vkDevice);
+
+
+               descriptorSet[0] = makeDescriptorSet(*m_descriptorPool, *descriptorSetLayout[0]);
+               descriptorSet[1] = makeDescriptorSet(*m_descriptorPool, *descriptorSetLayout[1]);
+
+               {
+                       const VkDescriptorBufferInfo                    descriptorBufferInfo    =
+                       {
+                               *m_uniformBuffer,                                                       // VkBuffer             buffer;
+                               0u,                                                                                     // VkDeviceSize offset;
+                               VK_WHOLE_SIZE                                                           // VkDeviceSize range;
+                       };
+
+                       DescriptorSetUpdateBuilder()
+                               .writeSingle(*descriptorSet[0], DescriptorSetUpdateBuilder::Location::binding(0), VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, &descriptorBufferInfo)
+                               .update(vkd, vkDevice);
+               }
+
+               {
+                       VkDescriptorImageInfo                                   descriptorImageInfo             =
+                       {
+                               *sampler,                                                                               // VkSampler            sampler;
+                               m_textureBindings[texUnit]->getImageView(),             // VkImageView          imageView;
+                               VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL                // VkImageLayout        imageLayout;
+                       };
+
+                       DescriptorSetUpdateBuilder()
+                               .writeSingle(*descriptorSet[1], DescriptorSetUpdateBuilder::Location::binding(0), VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, &descriptorImageInfo)
+                               .update(vkd, vkDevice);
+               }
+
+               // Pipeline Layout
+               {
+                       VkDescriptorSetLayout                                   descriptorSetLayouts[2]         =
+                       {
+                               *descriptorSetLayout[0],
+                               *descriptorSetLayout[1]
+                       };
+
+                       const VkPipelineLayoutCreateInfo                pipelineLayoutCreateInfo        =
+                       {
+                               VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,          // VkStructureType                              sType;
+                               DE_NULL,                                                                                        // const void*                                  pNext;
+                               0u,                                                                                                     // VkPipelineLayoutCreateFlags  flags;
+                               2u,                                                                                                     // deUint32                                             descriptorSetCount;
+                               descriptorSetLayouts,                                                           // const VkDescriptorSetLayout* pSetLayouts;
+                               0u,                                                                                                     // deUint32                                             pushConstantRangeCount;
+                               DE_NULL                                                                                         // const VkPushConstantRange*   pPushConstantRanges;
+                       };
+
+                       pipelineLayout = createPipelineLayout(vkd, vkDevice, &pipelineLayoutCreateInfo);
+               }
+
+               const VkGraphicsPipelineCreateInfo graphicsPipelineParams =
+               {
+                       VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,        // VkStructureType                                                                      sType;
+                       DE_NULL,                                                                                        // const void*                                                                          pNext;
+                       0u,                                                                                                     // VkPipelineCreateFlags                                                        flags;
+                       2u,                                                                                                     // deUint32                                                                                     stageCount;
+                       shaderStageParams,                                                                      // const VkPipelineShaderStageCreateInfo*                       pStages;
+                       &vertexInputStateParams,                                                        // const VkPipelineVertexInputStateCreateInfo*          pVertexInputState;
+                       &inputAssemblyStateParams,                                                      // const VkPipelineInputAssemblyStateCreateInfo*        pInputAssemblyState;
+                       DE_NULL,                                                                                        // const VkPipelineTessellationStateCreateInfo*         pTessellationState;
+                       &viewportStateParams,                                                           // const VkPipelineViewportStateCreateInfo*                     pViewportState;
+                       &rasterizationStateCreateInfo,                                          // const VkPipelineRasterStateCreateInfo*                       pRasterizationState;
+                       &multisampleStateParams,                                                        // const VkPipelineMultisampleStateCreateInfo*          pMultisampleState;
+                       DE_NULL,                                                                                        // const VkPipelineDepthStencilStateCreateInfo*         pDepthStencilState;
+                       &colorBlendStateParams,                                                         // const VkPipelineColorBlendStateCreateInfo*           pColorBlendState;
+                       DE_NULL,                                                                                        // const VkPipelineDynamicStateCreateInfo*                      pDynamicState;
+                       *pipelineLayout,                                                                        // VkPipelineLayout                                                                     layout;
+                       *m_renderPass,                                                                          // VkRenderPass                                                                         renderPass;
+                       0u,                                                                                                     // deUint32                                                                                     subpass;
+                       0u,                                                                                                     // VkPipeline                                                                           basePipelineHandle;
+                       0u                                                                                                      // deInt32                                                                                      basePipelineIndex;
+               };
+
+               graphicsPipeline                = createGraphicsPipeline(vkd, vkDevice, DE_NULL, &graphicsPipelineParams);
+       }
+
+       // Create Vertex Buffer
+       {
+               const VkBufferCreateInfo                        vertexBufferParams              =
+               {
+                       VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,           // VkStructureType              sType;
+                       DE_NULL,                                                                        // const void*                  pNext;
+                       0u,                                                                                     // VkBufferCreateFlags  flags;
+                       positionDataSize + textureCoordDataSize,        // VkDeviceSize                 size;
+                       VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,                      // VkBufferUsageFlags   usage;
+                       VK_SHARING_MODE_EXCLUSIVE,                                      // VkSharingMode                sharingMode;
+                       1u,                                                                                     // deUint32                             queueFamilyCount;
+                       &queueFamilyIndex                                                       // const deUint32*              pQueueFamilyIndices;
+               };
+
+               vertexBuffer            = createBuffer(vkd, vkDevice, &vertexBufferParams);
+               vertexBufferMemory      = allocator.allocate(getBufferMemoryRequirements(vkd, vkDevice, *vertexBuffer), MemoryRequirement::HostVisible);
+
+               VK_CHECK(vkd.bindBufferMemory(vkDevice, *vertexBuffer, vertexBufferMemory->getMemory(), vertexBufferMemory->getOffset()));
+
+               // Load vertices into vertex buffer
+               deMemcpy(vertexBufferMemory->getHostPtr(), position, positionDataSize);
+               deMemcpy(reinterpret_cast<deUint8*>(vertexBufferMemory->getHostPtr()) +  positionDataSize, texCoord, textureCoordDataSize);
+               flushMappedMemoryRange(vkd, vkDevice, vertexBufferMemory->getMemory(), vertexBufferMemory->getOffset(), vertexBufferParams.size);
+       }
+
+       // Create Command Buffer
+       {
+               const VkCommandBufferAllocateInfo               cmdBufferAllocateInfo   =
+               {
+                       VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,                         // VkStructureType             sType;
+                       DE_NULL,                                                                                                        // const void*                 pNext;
+                       *m_commandPool,                                                                                         // VkCommandPool               commandPool;
+                       VK_COMMAND_BUFFER_LEVEL_PRIMARY,                                                        // VkCommandBufferLevel        level;
+                       1                                                                                                                       // deUint32                    commandBufferCount;
+               };
+
+               commandBuffer = allocateCommandBuffer(vkd, vkDevice, &cmdBufferAllocateInfo);
+       }
+
+       // Begin Command Buffer
+       {
+               const VkCommandBufferBeginInfo          cmdBufferBeginInfo              =
+               {
+                       VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,    // VkStructureType                                                      sType;
+                       DE_NULL,                                                                                // const void*                                                          pNext;
+                       0u,                                                                                             // VkCmdBufferOptimizeFlags                                     flags;
+                       DE_NULL                                                                                 // const VkCommandBufferInheritanceInfo*        pInheritanceInfo;
+               };
+
+               VK_CHECK(vkd.beginCommandBuffer(*commandBuffer, &cmdBufferBeginInfo));
+       }
+
+       // Begin Render Pass
+       {
+               const VkRenderPassBeginInfo                     renderPassBeginInfo             =
+               {
+                       VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,                               // VkStructureType              sType;
+                       DE_NULL,                                                                                                // const void*                  pNext;
+                       *m_renderPass,                                                                                  // VkRenderPass                 renderPass;
+                       *m_frameBuffer,                                                                                 // VkFramebuffer                framebuffer;
+                       {
+                               { 0, 0 },
+                               { m_renderWidth, m_renderHeight }
+                       },                                                                                                              // VkRect2D                             renderArea;
+                       0u,                                                                                                             // deUint32                             clearValueCount;
+                       DE_NULL                                                                                                 // const VkClearValue*  pClearValues;
+               };
+
+               vkd.cmdBeginRenderPass(*commandBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+       }
+
+       const VkDeviceSize                                              vertexBufferOffset              = 0;
+
+       vkd.cmdBindPipeline(*commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *graphicsPipeline);
+       vkd.cmdBindDescriptorSets(*commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipelineLayout, 0u, 1, &descriptorSet[0].get(), 0u, DE_NULL);
+       vkd.cmdBindDescriptorSets(*commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipelineLayout, 1u, 1, &descriptorSet[1].get(), 0u, DE_NULL);
+       vkd.cmdBindVertexBuffers(*commandBuffer, 0, 1, &vertexBuffer.get(), &vertexBufferOffset);
+       vkd.cmdBindVertexBuffers(*commandBuffer, 1, 1, &vertexBuffer.get(), &vertexBufferOffset);
+       vkd.cmdBindIndexBuffer(*commandBuffer, *m_vertexIndexBuffer, 0, VK_INDEX_TYPE_UINT16);
+       vkd.cmdDrawIndexed(*commandBuffer, 6, 1, 0, 0, 0);
+       vkd.cmdEndRenderPass(*commandBuffer);
+
+       // Copy Image
+       {
+               const VkBufferMemoryBarrier                     bufferBarrier                   =
+               {
+                       VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,        // VkStructureType              sType;
+                       DE_NULL,                                                                        // const void*                  pNext;
+                       VK_ACCESS_TRANSFER_WRITE_BIT,                           // VkMemoryOutputFlags  outputMask;
+                       VK_ACCESS_HOST_READ_BIT,                                        // VkMemoryInputFlags   inputMask;
+                       VK_QUEUE_FAMILY_IGNORED,                                        // deUint32                             srcQueueFamilyIndex;
+                       VK_QUEUE_FAMILY_IGNORED,                                        // deUint32                             destQueueFamilyIndex;
+                       *m_resultBuffer,                                                        // VkBuffer                             buffer;
+                       0u,                                                                                     // VkDeviceSize                 offset;
+                       m_resultBufferSize                                                      // VkDeviceSize                 size;
+               };
+
+               const VkBufferImageCopy                         copyRegion                              =
+               {
+                       0u,                                                                                     // VkDeviceSize                         bufferOffset;
+                       m_renderWidth,                                                          // deUint32                                     bufferRowLength;
+                       m_renderHeight,                                                         // deUint32                                     bufferImageHeight;
+                       {
+                               VK_IMAGE_ASPECT_COLOR_BIT,
+                               0u,
+                               0u,
+                               1u
+                       },                                                                                      // VkImageSubresourceCopy       imageSubresource;
+                       { 0, 0, 0 },                                                            // VkOffset3D                           imageOffset;
+                       { m_renderWidth, m_renderHeight, 1u }           // VkExtent3D                           imageExtent;
+               };
+
+               addImageTransitionBarrier(*commandBuffer,
+                                                                 m_multisampling ? *m_resolvedImage : *m_image,
+                                                                 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,                // VkPipelineStageFlags         srcStageMask
+                                                                 VK_PIPELINE_STAGE_TRANSFER_BIT,                                               // VkPipelineStageFlags         dstStageMask
+                                                                 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                 // VkAccessFlags                        srcAccessMask
+                                                                 VK_ACCESS_TRANSFER_READ_BIT,                                                  // VkAccessFlags                        dstAccessMask
+                                                                 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,                             // VkImageLayout                        oldLayout;
+                                                                 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);                                // VkImageLayout                        newLayout;
+
+               if (m_multisampling)
+                       vkd.cmdCopyImageToBuffer(*commandBuffer, *m_resolvedImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *m_resultBuffer, 1, &copyRegion);
+               else
+                       vkd.cmdCopyImageToBuffer(*commandBuffer, *m_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *m_resultBuffer, 1, &copyRegion);
+
+               vkd.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &bufferBarrier, 0, (const VkImageMemoryBarrier*)DE_NULL);
+
+               addImageTransitionBarrier(*commandBuffer,
+                                                                 m_multisampling ? *m_resolvedImage : *m_image,
+                                                                 VK_PIPELINE_STAGE_TRANSFER_BIT,                                       // VkPipelineStageFlags         srcStageMask
+                                                                 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,        // VkPipelineStageFlags         dstStageMask
+                                                                 VK_ACCESS_TRANSFER_READ_BIT,                                          // VkAccessFlags                        srcAccessMask
+                                                                 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                         // VkAccessFlags                        dstAccessMask
+                                                                 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,                         // VkImageLayout                        oldLayout;
+                                                                 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL);            // VkImageLayout                        newLayout;
+       }
+
+       VK_CHECK(vkd.endCommandBuffer(*commandBuffer));
+
+       // Upload uniform buffer data
+       {
+               const ShaderParameters  shaderParameters        =
+               {
+                       params.bias,                    // float                bias;                           //!< User-supplied bias.
+                       params.ref,                             // float                ref;                            //!< Reference value for shadow lookups.
+                       tcu::Vec2(),                    // tcu::Vec2    padding;                        //!< Shader uniform padding.
+                       params.colorScale,              // tcu::Vec4    colorScale;                     //!< Scale for texture color values.
+                       params.colorBias                // tcu::Vec4    colorBias;                      //!< Bias for texture color values.
+               };
+               const deUint32          shaderParamsSize = sizeof(shaderParameters);
+               deMemcpy(m_uniformBufferMemory->getHostPtr(), &shaderParameters, shaderParamsSize);
+               flushMappedMemoryRange(vkd, vkDevice, m_uniformBufferMemory->getMemory(), m_uniformBufferMemory->getOffset(), shaderParamsSize);
+
+               if (logUniforms)
+                       m_log << TestLog::Message << "u_sampler = " << texUnit << TestLog::EndMessage;
+
+               if (useBias)
+               {
+                       if (logUniforms)
+                               m_log << TestLog::Message << "u_bias = " << shaderParameters.bias << TestLog::EndMessage;
+               }
+
+               if (params.samplerType == SAMPLERTYPE_SHADOW)
+               {
+                       if (logUniforms)
+                               m_log << TestLog::Message << "u_ref = " << shaderParameters.ref << TestLog::EndMessage;
+               }
+
+               if (logUniforms)
+               {
+                       m_log << TestLog::Message << "u_colorScale = " << shaderParameters.colorScale << TestLog::EndMessage;
+                       m_log << TestLog::Message << "u_colorBias = " << shaderParameters.colorBias << TestLog::EndMessage;
+               }
+       }
+
+       // Submit
+       {
+               const VkSubmitInfo                                      submitInfo                              =
+               {
+                       VK_STRUCTURE_TYPE_SUBMIT_INFO,                  // VkStructureType                              sType;
+                       DE_NULL,                                                                // const void*                                  pNext;
+                       0u,                                                                             // deUint32                                             waitSemaphoreCount;
+                       DE_NULL,                                                                // const VkSemaphore*                   pWaitSemaphores;
+                       DE_NULL,                                                                // const VkPipelineStageFlags*  pWaitDstStageMask;
+                       1u,                                                                             // deUint32                                             commandBufferCount;
+                       &commandBuffer.get(),                                   // const VkCommandBuffer*               pCommandBuffers;
+                       0u,                                                                             // deUint32                                             signalSemaphoreCount;
+                       DE_NULL,                                                                // const VkSemaphore*                   pSignalSemaphores;
+               };
+
+               VK_CHECK(vkd.resetFences(vkDevice, 1, &m_fence.get()));
+               VK_CHECK(vkd.queueSubmit(queue, 1, &submitInfo, *m_fence));
+               VK_CHECK(vkd.waitForFences(vkDevice, 1, &m_fence.get(), true, ~(0ull) /* infinity */));
+       }
+
+       invalidateMappedMemoryRange(vkd, vkDevice, m_resultBufferMemory->getMemory(), m_resultBufferMemory->getOffset(), m_resultBufferSize);
+
+       tcu::copy(result.getAccess(), tcu::ConstPixelBufferAccess(m_textureFormat, tcu::IVec3(m_renderWidth, m_renderHeight, 1u), m_resultBufferMemory->getHostPtr()));
+}
+
+/*--------------------------------------------------------------------*//*!
+ * \brief Map Vulkan sampler parameters to tcu::Sampler.
+ *
+ * If no mapping is found, throws tcu::InternalError.
+ *
+ * \param wrapU                        U-component wrap mode
+ * \param wrapV                        V-component wrap mode
+ * \param wrapW                        W-component wrap mode
+ * \param minFilterMode        Minification filter mode
+ * \param magFilterMode        Magnification filter mode
+ * \return Sampler description.
+ *//*--------------------------------------------------------------------*/
+tcu::Sampler createSampler (tcu::Sampler::WrapMode wrapU, tcu::Sampler::WrapMode wrapV, tcu::Sampler::WrapMode wrapW, tcu::Sampler::FilterMode minFilterMode, tcu::Sampler::FilterMode magFilterMode)
+{
+       return tcu::Sampler(wrapU, wrapV, wrapW,
+                                               minFilterMode, magFilterMode,
+                                               0.0f /* lod threshold */,
+                                               true /* normalized coords */,
+                                               tcu::Sampler::COMPAREMODE_NONE /* no compare */,
+                                               0 /* compare channel */,
+                                               tcu::Vec4(0.0f) /* border color, not used */);
+}
+
+/*--------------------------------------------------------------------*//*!
+ * \brief Map Vulkan sampler parameters to tcu::Sampler.
+ *
+ * If no mapping is found, throws tcu::InternalError.
+ *
+ * \param wrapU                        U-component wrap mode
+ * \param wrapV                        V-component wrap mode
+ * \param minFilterMode        Minification filter mode
+ * \param minFilterMode        Magnification filter mode
+ * \return Sampler description.
+ *//*--------------------------------------------------------------------*/
+tcu::Sampler createSampler (tcu::Sampler::WrapMode wrapU, tcu::Sampler::WrapMode wrapV, tcu::Sampler::FilterMode minFilterMode, tcu::Sampler::FilterMode magFilterMode)
+{
+       return createSampler(wrapU, wrapV, wrapU, minFilterMode, magFilterMode);
+}
+
+/*--------------------------------------------------------------------*//*!
+ * \brief Map Vulkan sampler parameters to tcu::Sampler.
+ *
+ * If no mapping is found, throws tcu::InternalError.
+ *
+ * \param wrapU                        U-component wrap mode
+ * \param minFilterMode        Minification filter mode
+ * \return Sampler description.
+ *//*--------------------------------------------------------------------*/
+tcu::Sampler createSampler (tcu::Sampler::WrapMode wrapU, tcu::Sampler::FilterMode minFilterMode, tcu::Sampler::FilterMode magFilterMode)
+{
+       return createSampler(wrapU, wrapU, wrapU, minFilterMode, magFilterMode);
+}
+
+TestTexture2DSp loadTexture2D (const tcu::Archive& archive, const std::vector<std::string>& filenames)
+{
+       DE_ASSERT(filenames.size() > 0);
+
+       TestTexture2DSp texture;
+
+       std::string ext = de::FilePath(filenames[0]).getFileExtension();
+
+       if (ext == "png")
+       {
+
+               for (size_t fileIndex = 0; fileIndex < filenames.size(); ++fileIndex)
+               {
+                       tcu::TextureLevel level;
+
+                       tcu::ImageIO::loadImage(level, archive, filenames[fileIndex].c_str());
+
+                       TCU_CHECK_INTERNAL(level.getFormat() == tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8) ||
+                                                                                          level.getFormat() == tcu::TextureFormat(tcu::TextureFormat::RGB, tcu::TextureFormat::UNORM_INT8));
+
+                       if (fileIndex == 0)
+                               texture = TestTexture2DSp(new pipeline::TestTexture2D(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), level.getWidth(), level.getHeight()));
+
+                       tcu::copy(texture->getLevel((int)fileIndex, 0), level.getAccess());
+               }
+       }
+       else if (ext == "pkm")
+       {
+
+               for (size_t fileIndex = 0; fileIndex < filenames.size(); ++fileIndex)
+               {
+                       // Compressed texture.
+                       tcu::CompressedTexture  level;
+
+                       tcu::ImageIO::loadPKM(level, archive, filenames[fileIndex].c_str());
+
+                       tcu::TextureFormat              uncompressedFormat              = tcu::getUncompressedFormat(level.getFormat());
+                       std::vector<deUint8>    uncompressedData                (uncompressedFormat.getPixelSize() * level.getWidth() * level.getHeight(), 0);
+                       tcu::PixelBufferAccess  decompressedBuffer              (uncompressedFormat, level.getWidth(), level.getHeight(), 1, uncompressedData.data());
+
+                       tcu::TextureFormat              commonFormat                    = tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8);
+                       std::vector<deUint8>    commonFromatData                (commonFormat.getPixelSize() * level.getWidth() * level.getHeight(), 0);
+                       tcu::PixelBufferAccess  commonFormatBuffer              (commonFormat, level.getWidth(), level.getHeight(), 1, commonFromatData.data());
+
+                       if (fileIndex == 0)
+                               texture = TestTexture2DSp(new pipeline::TestTexture2D(commonFormat, level.getWidth(), level.getHeight()));
+
+                       level.decompress(decompressedBuffer, tcu::TexDecompressionParams(tcu::TexDecompressionParams::ASTCMODE_LDR));
+
+                       tcu::copy(commonFormatBuffer, decompressedBuffer);
+                       tcu::copy(texture->getLevel((int)fileIndex, 0), commonFormatBuffer);
+               }
+       }
+       else
+               TCU_FAIL("Unsupported file format");
+
+       return texture;
+}
+
+TestTextureCubeSp loadTextureCube (const tcu::Archive& archive, const std::vector<std::string>& filenames)
+{
+       DE_ASSERT(filenames.size() > 0);
+       DE_STATIC_ASSERT(tcu::CUBEFACE_LAST == 6);
+       TCU_CHECK((int)filenames.size() % tcu::CUBEFACE_LAST == 0);
+
+       TestTextureCubeSp texture;
+
+       std::string ext = de::FilePath(filenames[0]).getFileExtension();
+
+       if (ext == "png")
+       {
+
+               for (size_t fileIndex = 0; fileIndex < filenames.size(); ++fileIndex)
+               {
+                       tcu::TextureLevel level;
+
+                       tcu::ImageIO::loadImage(level, archive, filenames[fileIndex].c_str());
+
+                       TCU_CHECK_INTERNAL(level.getFormat() == tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8) ||
+                                                                                          level.getFormat() == tcu::TextureFormat(tcu::TextureFormat::RGB, tcu::TextureFormat::UNORM_INT8));
+
+                       TCU_CHECK( level.getWidth() == level.getHeight());
+
+                       if (fileIndex == 0)
+                               texture = TestTextureCubeSp(new pipeline::TestTextureCube(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), level.getWidth()));
+
+                       tcu::copy(texture->getLevel((int)fileIndex / 6, (int)fileIndex % 6), level.getAccess());
+               }
+       }
+       else if (ext == "pkm")
+       {
+               for (size_t fileIndex = 0; fileIndex < filenames.size(); ++fileIndex)
+               {
+                       // Compressed texture.
+                       tcu::CompressedTexture  level;
+
+                       tcu::ImageIO::loadPKM(level, archive, filenames[fileIndex].c_str());
+
+                       TCU_CHECK( level.getWidth() == level.getHeight());
+
+                       tcu::TextureFormat              uncompressedFormat                              = tcu::getUncompressedFormat(level.getFormat());
+                       std::vector<deUint8>    uncompressedData                                (uncompressedFormat.getPixelSize() * level.getWidth() * level.getHeight(), 0);
+                       tcu::PixelBufferAccess  decompressedBuffer                              (uncompressedFormat, level.getWidth(), level.getHeight(), 1, uncompressedData.data());
+
+                       tcu::TextureFormat              commonFormat                                    = tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8);
+                       std::vector<deUint8>    commonFromatData                                (commonFormat.getPixelSize() * level.getWidth() * level.getHeight(), 0);
+                       tcu::PixelBufferAccess  commonFormatBuffer                              (commonFormat, level.getWidth(), level.getHeight(), 1, commonFromatData.data());
+
+                       if (fileIndex == 0)
+                               texture = TestTextureCubeSp(new pipeline::TestTextureCube(commonFormat, level.getWidth()));
+
+                       level.decompress(decompressedBuffer, tcu::TexDecompressionParams(tcu::TexDecompressionParams::ASTCMODE_LDR));
+
+                       tcu::copy(commonFormatBuffer, decompressedBuffer);
+                       tcu::copy(texture->getLevel((int)fileIndex / 6, (int)fileIndex % 6), commonFormatBuffer);
+               }
+       }
+       else
+               TCU_FAIL("Unsupported file format");
+
+       return texture;
+}
+
+TextureCommonTestCaseParameters::TextureCommonTestCaseParameters (void)
+       : sampleCount                   (VK_SAMPLE_COUNT_1_BIT)
+       , texCoordPrecision             (glu::PRECISION_HIGHP)
+       , minFilter                             (tcu::Sampler::LINEAR)
+       , magFilter                             (tcu::Sampler::LINEAR)
+       , wrapS                                 (tcu::Sampler::REPEAT_GL)
+       , wrapT                                 (tcu::Sampler::REPEAT_GL)
+       , format                                (VK_FORMAT_R8G8B8A8_UNORM)
+{
+}
+
+Texture2DTestCaseParameters::Texture2DTestCaseParameters (void)
+       : width                                 (64)
+       , height                                (64)
+{
+}
+
+TextureCubeTestCaseParameters::TextureCubeTestCaseParameters (void)
+       : size                                  (64)
+{
+}
+
+Texture2DArrayTestCaseParameters::Texture2DArrayTestCaseParameters (void)
+       : numLayers                             (8)
+{
+}
+
+Texture3DTestCaseParameters::Texture3DTestCaseParameters (void)
+       : wrapR                                 (tcu::Sampler::REPEAT_GL)
+       , depth                                 (64)
+{
+}
+
+} // util
+} // texture
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.hpp b/external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.hpp
new file mode 100644 (file)
index 0000000..cddd0e3
--- /dev/null
@@ -0,0 +1,323 @@
+#ifndef _VKTTEXTURETESTUTIL_HPP
+#define _VKTTEXTURETESTUTIL_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Texture test utilities.
+ *
+ * About coordinates:
+ *  + Quads consist of 2 triangles, rendered using explicit indices.
+ *  + All TextureTestUtil functions and classes expect texture coordinates
+ *    for quads to be specified in order (-1, -1), (-1, 1), (1, -1), (1, 1).
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuSurface.hpp"
+
+#include "vkDefs.hpp"
+#include "vktTestCase.hpp"
+
+#include "gluShaderProgram.hpp"
+#include "gluTextureTestUtil.hpp"
+#include "deSharedPtr.hpp"
+
+#include "../pipeline/vktPipelineImageUtil.hpp"
+
+namespace vkt
+{
+
+namespace texture
+{
+
+namespace util
+{
+
+enum Program
+{
+       PROGRAM_2D_FLOAT = 0,
+       PROGRAM_2D_INT,
+       PROGRAM_2D_UINT,
+       PROGRAM_2D_SHADOW,
+
+       PROGRAM_2D_FLOAT_BIAS,
+       PROGRAM_2D_INT_BIAS,
+       PROGRAM_2D_UINT_BIAS,
+       PROGRAM_2D_SHADOW_BIAS,
+
+       PROGRAM_1D_FLOAT,
+       PROGRAM_1D_INT,
+       PROGRAM_1D_UINT,
+       PROGRAM_1D_SHADOW,
+
+       PROGRAM_1D_FLOAT_BIAS,
+       PROGRAM_1D_INT_BIAS,
+       PROGRAM_1D_UINT_BIAS,
+       PROGRAM_1D_SHADOW_BIAS,
+
+       PROGRAM_CUBE_FLOAT,
+       PROGRAM_CUBE_INT,
+       PROGRAM_CUBE_UINT,
+       PROGRAM_CUBE_SHADOW,
+
+       PROGRAM_CUBE_FLOAT_BIAS,
+       PROGRAM_CUBE_INT_BIAS,
+       PROGRAM_CUBE_UINT_BIAS,
+       PROGRAM_CUBE_SHADOW_BIAS,
+
+       PROGRAM_1D_ARRAY_FLOAT,
+       PROGRAM_1D_ARRAY_INT,
+       PROGRAM_1D_ARRAY_UINT,
+       PROGRAM_1D_ARRAY_SHADOW,
+
+       PROGRAM_2D_ARRAY_FLOAT,
+       PROGRAM_2D_ARRAY_INT,
+       PROGRAM_2D_ARRAY_UINT,
+       PROGRAM_2D_ARRAY_SHADOW,
+
+       PROGRAM_3D_FLOAT,
+       PROGRAM_3D_INT,
+       PROGRAM_3D_UINT,
+
+       PROGRAM_3D_FLOAT_BIAS,
+       PROGRAM_3D_INT_BIAS,
+       PROGRAM_3D_UINT_BIAS,
+
+       PROGRAM_CUBE_ARRAY_FLOAT,
+       PROGRAM_CUBE_ARRAY_INT,
+       PROGRAM_CUBE_ARRAY_UINT,
+       PROGRAM_CUBE_ARRAY_SHADOW,
+
+       PROGRAM_BUFFER_FLOAT,
+       PROGRAM_BUFFER_INT,
+       PROGRAM_BUFFER_UINT,
+
+       PROGRAM_LAST
+};
+
+void initializePrograms(vk::SourceCollections& programCollection, glu::Precision texCoordPrecision, const std::vector<Program>& programs);
+
+typedef de::SharedPtr<pipeline::TestTexture>           TestTextureSp;
+typedef de::SharedPtr<pipeline::TestTexture2D>         TestTexture2DSp;
+typedef de::SharedPtr<pipeline::TestTextureCube>       TestTextureCubeSp;
+typedef de::SharedPtr<pipeline::TestTexture2DArray>    TestTexture2DArraySp;
+typedef de::SharedPtr<pipeline::TestTexture3D>         TestTexture3DSp;
+
+class TextureBinding {
+public:
+       enum Type
+       {
+               TYPE_NONE = 0,
+               TYPE_2D,
+               TYPE_CUBE_MAP,
+               TYPE_2D_ARRAY,
+               TYPE_3D,
+
+               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!
+
+       void                                                            updateTextureData                       (const TestTextureSp& textureData, const Type type);
+
+       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;
+};
+
+typedef de::SharedPtr<TextureBinding>  TextureBindingSp;
+
+class TextureRenderer
+{
+public:
+                                                                               TextureRenderer                         (Context& context, vk::VkSampleCountFlagBits sampleCount, deUint32 renderWidth, deUint32 renderHeight);
+                                                                               ~TextureRenderer                        (void);
+
+       void                                                            renderQuad                                      (tcu::Surface& result, int texUnit, const float* texCoord, glu::TextureTestUtil::TextureType texType);
+       void                                                            renderQuad                                      (tcu::Surface& result, int texUnit, const float* texCoord, const glu::TextureTestUtil::ReferenceParams& params);
+
+       void                                                            clearImage                                      (vk::VkImage image);
+       void                                                            add2DTexture                            (const TestTexture2DSp& texture);
+       const pipeline::TestTexture2D&          get2DTexture                            (int textureIndex) const;
+
+       void                                                            addCubeTexture                          (const TestTextureCubeSp& texture);
+       const pipeline::TestTextureCube&        getCubeTexture                          (int textureIndex) const;
+
+       void                                                            add2DArrayTexture                       (const TestTexture2DArraySp& texture);
+       const pipeline::TestTexture2DArray&     get2DArrayTexture                       (int textureIndex) const;
+
+       void                                                            add3DTexture                            (const TestTexture3DSp& texture);
+       const pipeline::TestTexture3D&          get3DTexture                            (int textureIndex) const;
+
+       void                                                            setViewport                                     (float viewportX, float viewportY, float viewportW, float viewportH);
+
+       TextureBinding*                                         getTextureBinding                       (int textureIndex) const;
+
+       deUint32                                                        getRenderWidth                          (void) const;
+       deUint32                                                        getRenderHeight                         (void) const;
+
+protected:
+                                                                               TextureRenderer                         (const TextureRenderer& other);
+       TextureRenderer&                                        operator=                                       (const TextureRenderer& other);
+
+       Context&                                                        m_context;
+       tcu::TestLog&                                           m_log;
+
+       const deUint32                                          m_renderWidth;
+       const deUint32                                          m_renderHeight;
+       const vk::VkSampleCountFlagBits         m_sampleCount;
+       const deBool                                            m_multisampling;
+
+       const vk::VkFormat                                      m_imageFormat;
+       const tcu::TextureFormat                        m_textureFormat;
+
+       vk::Move<vk::VkImage>                           m_image;
+       de::MovePtr<vk::Allocation>                     m_imageMemory;
+       vk::Move<vk::VkImageView>                       m_imageView;
+
+       vk::Move<vk::VkImage>                           m_resolvedImage;
+       de::MovePtr<vk::Allocation>                     m_resolvedImageMemory;
+       vk::Move<vk::VkImageView>                       m_resolvedImageView;
+
+       vk::Move<vk::VkCommandPool>                     m_commandPool;
+       vk::Move<vk::VkRenderPass>                      m_renderPass;
+       vk::Move<vk::VkFramebuffer>                     m_frameBuffer;
+
+       vk::Move<vk::VkDescriptorPool>          m_descriptorPool;
+
+       vk::Move<vk::VkBuffer>                          m_uniformBuffer;
+       de::MovePtr<vk::Allocation>                     m_uniformBufferMemory;
+       const vk::VkDeviceSize                          m_uniformBufferSize;
+
+       vk::Move<vk::VkBuffer>                          m_vertexIndexBuffer;
+       de::MovePtr<vk::Allocation>                     m_vertexIndexBufferMemory;
+       static const vk::VkDeviceSize           s_vertexIndexBufferSize;
+       static const deUint16                           s_vertexIndices[6];
+
+       vk::Move<vk::VkFence>                           m_fence;
+
+       vk::Move<vk::VkBuffer>                          m_resultBuffer;
+       de::MovePtr<vk::Allocation>                     m_resultBufferMemory;
+       const vk::VkDeviceSize                          m_resultBufferSize;
+
+       std::vector<TextureBindingSp>           m_textureBindings;
+
+       float                                                           m_viewportOffsetX;
+       float                                                           m_viewportOffsetY;
+       float                                                           m_viewportWidth;
+       float                                                           m_viewportHeight;
+
+private:
+       vk::Move<vk::VkDescriptorSet>           makeDescriptorSet                       (const vk::VkDescriptorPool descriptorPool, const vk::VkDescriptorSetLayout setLayout) const;
+       void                                                            addImageTransitionBarrier       (vk::VkCommandBuffer commandBuffer, vk::VkImage image, vk::VkPipelineStageFlags srcStageMask, vk::VkPipelineStageFlags dstStageMask, vk::VkAccessFlags srcAccessMask, vk::VkAccessFlags dstAccessMask, vk::VkImageLayout oldLayout, vk::VkImageLayout newLayout) const;
+
+};
+
+tcu::Sampler createSampler (tcu::Sampler::WrapMode wrapU, tcu::Sampler::WrapMode wrapV, tcu::Sampler::WrapMode wrapW, tcu::Sampler::FilterMode minFilterMode, tcu::Sampler::FilterMode magFilterMode);
+tcu::Sampler createSampler (tcu::Sampler::WrapMode wrapU, tcu::Sampler::WrapMode wrapV, tcu::Sampler::FilterMode minFilterMode, tcu::Sampler::FilterMode magFilterMode);
+tcu::Sampler createSampler (tcu::Sampler::WrapMode wrapU, tcu::Sampler::FilterMode minFilterMode, tcu::Sampler::FilterMode magFilterMode);
+
+TestTexture2DSp loadTexture2D (const tcu::Archive& archive, const std::vector<std::string>& filenames);
+TestTextureCubeSp loadTextureCube (const tcu::Archive& archive, const std::vector<std::string>& filenames);
+
+template <typename INSTANCE_TYPE>
+class TextureTestCase : public TestCase
+{
+public:
+                                                                               TextureTestCase (tcu::TestContext& context, const std::string& name, const std::string& description, const typename INSTANCE_TYPE::ParameterType& testParameters)
+                                                                                               : TestCase                              (context, name, description)
+                                                                                               , m_testsParameters             (testParameters)
+                                                                               {}
+
+       virtual TestInstance*                           createInstance                          (Context& context) const
+                                                                               {
+                                                                                       return new INSTANCE_TYPE(context, m_testsParameters);
+                                                                               }
+
+       virtual void                                            initPrograms                            (vk::SourceCollections& programCollection) const
+                                                                               {
+                                                                                       initializePrograms(programCollection, m_testsParameters.texCoordPrecision, m_testsParameters.programs);
+                                                                               }
+
+protected:
+       const typename INSTANCE_TYPE::ParameterType m_testsParameters;
+};
+
+struct TextureCommonTestCaseParameters
+{
+                                                               TextureCommonTestCaseParameters (void);
+
+       vk::VkSampleCountFlagBits       sampleCount;
+       glu::Precision                          texCoordPrecision;
+
+       tcu::Sampler::FilterMode        minFilter;
+       tcu::Sampler::FilterMode        magFilter;
+       tcu::Sampler::WrapMode          wrapS;
+       tcu::Sampler::WrapMode          wrapT;
+
+       vk::VkFormat                            format;
+
+       std::vector<util::Program>      programs;
+};
+
+struct Texture2DTestCaseParameters : public TextureCommonTestCaseParameters
+{
+                                                               Texture2DTestCaseParameters             (void);
+       int                                                     width;
+       int                                                     height;
+};
+
+struct TextureCubeTestCaseParameters : public TextureCommonTestCaseParameters
+{
+                                                               TextureCubeTestCaseParameters   (void);
+       int                                                     size;
+};
+
+struct Texture2DArrayTestCaseParameters : public Texture2DTestCaseParameters
+{
+                                                               Texture2DArrayTestCaseParameters(void);
+       int                                                     numLayers;
+};
+
+struct Texture3DTestCaseParameters : public Texture2DTestCaseParameters
+{
+                                                               Texture3DTestCaseParameters             (void);
+       tcu::Sampler::WrapMode          wrapR;
+       int                                                     depth;
+};
+
+} // util
+} // texture
+} // vkt
+
+#endif // _VKTTEXTURETESTUTIL_HPP
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp
new file mode 100644 (file)
index 0000000..8d7ca80
--- /dev/null
@@ -0,0 +1,50 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Functional rasterization tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTestGroupUtil.hpp"
+#include "vktTextureFilteringTests.hpp"
+#include "vktTextureTests.hpp"
+
+namespace vkt
+{
+namespace texture
+{
+namespace
+{
+
+void createTextureTests (tcu::TestCaseGroup* imageTests)
+{
+       createTextureFilteringTests(imageTests);
+}
+
+} // anonymous
+
+tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx)
+{
+       return createTestGroup(testCtx, "texture", "Texture Tests", createTextureTests);
+}
+
+} // texture
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureTests.hpp b/external/vulkancts/modules/vulkan/texture/vktTextureTests.hpp
new file mode 100644 (file)
index 0000000..35d3cdb
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef _VKTTEXTURETESTS_HPP
+#define _VKTTEXTURETESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2016 The Khronos Group Inc.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Functional texture tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace texture
+{
+
+tcu::TestCaseGroup*            createTests     (tcu::TestContext& testCtx);
+
+} // texture
+} // vkt
+
+#endif // _VKTTEXTURETESTS_HPP
index 8b39504..9f47b1e 100644 (file)
@@ -75,6 +75,7 @@
 #include "vktRasterizationTests.hpp"
 #include "vktClippingTests.hpp"
 #include "vktFragmentOperationsTests.hpp"
+#include "vktTextureTests.hpp"
 
 #include <vector>
 #include <sstream>
@@ -396,6 +397,7 @@ void TestPackage::init (void)
        addChild(clipping::createTests                  (m_testCtx));
        addChild(texture_filtering::createTests (m_testCtx));
        addChild(FragmentOperations::createTests(m_testCtx));
+       addChild(texture::createTests                   (m_testCtx));
 }
 
 } // vkt
index eaab641..40638c2 100644 (file)
@@ -109629,3 +109629,2771 @@ dEQP-VK.fragment_operations.early_fragment.no_early_fragment_tests_depth_no_atta
 dEQP-VK.fragment_operations.early_fragment.no_early_fragment_tests_stencil_no_attachment
 dEQP-VK.fragment_operations.early_fragment.early_fragment_tests_depth_no_attachment
 dEQP-VK.fragment_operations.early_fragment.early_fragment_tests_stencil_no_attachment
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_nearest
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_linear
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_nearest
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_linear
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_nearest
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_linear
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_nearest
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_linear
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_nearest
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_linear
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.4x8_nearest
+dEQP-VK.texture.filtering.2d.sizes.4x8_linear
+dEQP-VK.texture.filtering.2d.sizes.4x8_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.4x8_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.4x8_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.4x8_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.32x64_nearest
+dEQP-VK.texture.filtering.2d.sizes.32x64_linear
+dEQP-VK.texture.filtering.2d.sizes.32x64_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.32x64_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.32x64_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.32x64_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.128x128_nearest
+dEQP-VK.texture.filtering.2d.sizes.128x128_linear
+dEQP-VK.texture.filtering.2d.sizes.128x128_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.128x128_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.128x128_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.128x128_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.3x7_nearest
+dEQP-VK.texture.filtering.2d.sizes.3x7_linear
+dEQP-VK.texture.filtering.2d.sizes.3x7_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.3x7_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.3x7_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.3x7_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.31x55_nearest
+dEQP-VK.texture.filtering.2d.sizes.31x55_linear
+dEQP-VK.texture.filtering.2d.sizes.31x55_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.31x55_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.31x55_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.31x55_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.127x99_nearest
+dEQP-VK.texture.filtering.2d.sizes.127x99_linear
+dEQP-VK.texture.filtering.2d.sizes.127x99_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.127x99_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.127x99_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.127x99_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_nearest
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_linear
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r16g16b16a16_sfloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_nearest
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_linear
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.b10g11r11_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_nearest
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_linear
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.e5b9g9r9_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r8g8b8a8_snorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r5g6b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r4g4b4a4_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.r5g5b5a1_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_nearest
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_linear
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.a8b8g8r8_srgb_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_nearest
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_linear
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.formats.a1r5g5b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.8x8_nearest
+dEQP-VK.texture.filtering.cube.sizes.8x8_linear
+dEQP-VK.texture.filtering.cube.sizes.8x8_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.8x8_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.8x8_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.8x8_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.64x64_nearest
+dEQP-VK.texture.filtering.cube.sizes.64x64_linear
+dEQP-VK.texture.filtering.cube.sizes.64x64_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.64x64_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.64x64_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.64x64_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.128x128_nearest
+dEQP-VK.texture.filtering.cube.sizes.128x128_linear
+dEQP-VK.texture.filtering.cube.sizes.128x128_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.128x128_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.128x128_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.128x128_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.7x7_nearest
+dEQP-VK.texture.filtering.cube.sizes.7x7_linear
+dEQP-VK.texture.filtering.cube.sizes.7x7_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.7x7_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.7x7_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.7x7_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.63x63_nearest
+dEQP-VK.texture.filtering.cube.sizes.63x63_linear
+dEQP-VK.texture.filtering.cube.sizes.63x63_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.63x63_linear_mipmap_nearest
+dEQP-VK.texture.filtering.cube.sizes.63x63_nearest_mipmap_linear
+dEQP-VK.texture.filtering.cube.sizes.63x63_linear_mipmap_linear
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.cube.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.cube.no_edges_visible.nearest
+dEQP-VK.texture.filtering.cube.no_edges_visible.linear
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_linear
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r16g16b16a16_sfloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_nearest
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_linear
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.b10g11r11_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_nearest
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_linear
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.e5b9g9r9_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r8g8b8a8_snorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g6b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r4g4b4a4_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.r5g5b5a1_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_linear
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.a8b8g8r8_srgb_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_linear
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.formats.a1r5g5b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_linear
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.4x8x8_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_linear
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.32x64x16_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_linear
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.128x32x64_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_linear
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.3x7x5_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_linear
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_linear_mipmap_nearest
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_nearest_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.sizes.63x63x63_linear_mipmap_linear
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.2d_array.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_nearest
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_linear
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r16g16b16a16_sfloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_nearest
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_linear
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.b10g11r11_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_nearest
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_linear
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.e5b9g9r9_ufloat_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r8g8b8a8_snorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r5g6b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r4g4b4a4_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.r5g5b5a1_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_nearest
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_linear
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.a8b8g8r8_srgb_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_nearest
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_linear
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.formats.a1r5g5b5_unorm_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_nearest
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_linear
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.4x8x8_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_nearest
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_linear
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.32x64x16_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_nearest
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_linear
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.128x32x64_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_nearest
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_linear
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.3x7x5_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_nearest
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_linear
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_linear_mipmap_nearest
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_linear
+dEQP-VK.texture.filtering.3d.sizes.63x63x63_linear_mipmap_linear
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirrored_repeat_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_to_border_mirror_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirrored_repeat_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_edge_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_clamp_to_border_mirror_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirrored_repeat
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_edge
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_clamp_to_border
+dEQP-VK.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_to_edge_mirror_clamp_to_edge_mirror_clamp_to_edge