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
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);
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
};
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);
add_subdirectory(synchronization)
add_subdirectory(clipping)
add_subdirectory(fragment_ops)
+add_subdirectory(texture)
include_directories(
api
synchronization
clipping
fragment_ops
+ texture
)
set(DEQP_VK_COMMON_SRCS
deqp-vk-synchronization
deqp-vk-clipping
deqp-vk-fragment-ops
+ deqp-vk-texture
)
add_library(deqp-vk-common STATIC ${DEQP_VK_COMMON_SRCS})
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,
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();
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;
}
};
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;
}
};
VK_CHECK(vk.waitForFences(device, 1, &fence.get(), true, ~(0ull) /* infinity */));
}
-
// Utilities for test textures
template<typename TcuTextureType>
return levels;
}
-
// TestTexture
TestTexture::TestTexture (const tcu::TextureFormat& format, int width, int height, int depth)
{
std::vector<deUint32> offsetMultiples;
std::vector<VkBufferImageCopy> regions;
- deUint32 layerDataOffset = 0;
+ deUint32 layerDataOffset = 0;
offsetMultiples.push_back(4);
}
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++)
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();
}
}
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);
return m_texture;
}
+tcu::Texture1D& TestTexture1D::getTexture (void)
+{
+ return m_texture;
+}
// TestTexture1DArray
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)
return m_texture;
}
+tcu::Texture2D& TestTexture2D::getTexture (void)
+{
+ return m_texture;
+}
// TestTexture2DArray
return m_texture;
}
+tcu::Texture2DArray& TestTexture2DArray::getTexture (void)
+{
+ return m_texture;
+}
+
int TestTexture2DArray::getArraySize (void) const
{
return m_texture.getNumLayers();
return m_texture;
}
+tcu::Texture3D& TestTexture3D::getTexture (void)
+{
+ return m_texture;
+}
// TestTextureCube
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
return m_texture;
}
+tcu::TextureCube& TestTextureCube::getTexture (void)
+{
+ return m_texture;
+}
+
// TestTextureCubeArray
TestTextureCubeArray::TestTextureCubeArray (const tcu::TextureFormat& format, int size, int arraySize)
return m_texture;
}
+tcu::TextureCubeArray& TestTextureCubeArray::getTexture (void)
+{
+ return m_texture;
+}
+
} // pipeline
} // vkt
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);
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
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
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
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
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
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
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
--- /dev/null
+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})
--- /dev/null
+/*------------------------------------------------------------------------
+ * 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
--- /dev/null
+#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
--- /dev/null
+/*------------------------------------------------------------------------
+ * 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, ©Region);
+ else
+ vkd.cmdCopyImageToBuffer(*commandBuffer, *m_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *m_resultBuffer, 1, ©Region);
+
+ 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
--- /dev/null
+#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
--- /dev/null
+/*------------------------------------------------------------------------
+ * 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
--- /dev/null
+#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
#include "vktRasterizationTests.hpp"
#include "vktClippingTests.hpp"
#include "vktFragmentOperationsTests.hpp"
+#include "vktTextureTests.hpp"
#include <vector>
#include <sstream>
addChild(clipping::createTests (m_testCtx));
addChild(texture_filtering::createTests (m_testCtx));
addChild(FragmentOperations::createTests(m_testCtx));
+ addChild(texture::createTests (m_testCtx));
}
} // vkt
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