Add sliced 3D compressed texture test
authorTomasz Owczarek <tomasz.owczarek@arm.com>
Mon, 3 Aug 2020 15:36:46 +0000 (16:36 +0100)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 26 Nov 2020 17:20:29 +0000 (12:20 -0500)
New tests:
dEQP-VK.texture.compressed_3D.*

VK-GL-CTS issue: 2567
Components: Vulkan

Change-Id: Iaad7ba69361cbfa8ef46a907ce36646450e7e6b7

android/cts/master/vk-master-2020-03-01.txt
android/cts/master/vk-master.txt
external/vulkancts/framework/vulkan/vkImageUtil.cpp
external/vulkancts/modules/vulkan/texture/vktTextureCompressedFormatTests.cpp
external/vulkancts/modules/vulkan/texture/vktTextureCompressedFormatTests.hpp
external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.cpp
external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.hpp
external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp
external/vulkancts/mustpass/master/vk-default.txt

index bd433df..9ad4b7f 100644 (file)
@@ -243769,6 +243769,222 @@ dEQP-VK.texture.filtering.2d_array.formats.d32_sfloat_s8_uint_stencil.d32_sfloat
 dEQP-VK.texture.filtering.3d.formats.s8_uint.s8_uint_nearest
 dEQP-VK.texture.filtering.3d.formats.d24_unorm_s8_uint_stencil.d24_unorm_s8_uint_stencil_nearest
 dEQP-VK.texture.filtering.3d.formats.d32_sfloat_s8_uint_stencil.d32_sfloat_s8_uint_stencil_nearest
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_npot_sparse
 dEQP-VK.texture.swizzle.component_mapping.r4g4_unorm_pack8_2d_pot_rgba
 dEQP-VK.texture.swizzle.component_mapping.r4g4_unorm_pack8_2d_pot_iiii
 dEQP-VK.texture.swizzle.component_mapping.r4g4_unorm_pack8_2d_pot_abgr
index cc25756..ccf56ef 100644 (file)
@@ -613234,6 +613234,222 @@ dEQP-VK.texture.compressed.bc7_unorm_block_2d_npot
 dEQP-VK.texture.compressed.bc7_unorm_block_2d_npot_sparse
 dEQP-VK.texture.compressed.bc7_srgb_block_2d_npot
 dEQP-VK.texture.compressed.bc7_srgb_block_2d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_npot_sparse
 dEQP-VK.texture.swizzle.component_mapping.r4g4_unorm_pack8_2d_pot_zzzz
 dEQP-VK.texture.swizzle.component_mapping.r4g4_unorm_pack8_2d_pot_oooo
 dEQP-VK.texture.swizzle.component_mapping.r4g4_unorm_pack8_2d_pot_rrrr
index 13eb56d..92d80cd 100644 (file)
@@ -4742,7 +4742,14 @@ void allocateAndBindSparseImage (const DeviceInterface&                                          vk,
                TCU_THROW(NotSupportedError, "Required memory size for sparse resource exceeds device limits.");
 
        const VkSparseImageMemoryRequirements           aspectRequirements      = sparseImageMemoryRequirements[aspectIndex];
-       const VkExtent3D                                                        imageGranularity        = aspectRequirements.formatProperties.imageGranularity;
+       VkExtent3D                                                                      blockSize                       = aspectRequirements.formatProperties.imageGranularity;
+
+       if (isCompressedFormat(imageCreateInfo.format))
+       {
+               // 28.4.3 block dimensions of block-compressed format
+               blockSize.width *= getBlockWidth(imageCreateInfo.format);
+               blockSize.height *= getBlockHeight(imageCreateInfo.format);
+       }
 
        std::vector<VkSparseImageMemoryBind>            imageResidencyMemoryBinds;
        std::vector<VkSparseMemoryBind>                         imageMipTailMemoryBinds;
@@ -4752,10 +4759,10 @@ void allocateAndBindSparseImage (const DeviceInterface&                                         vk,
                for (deUint32 mipLevelNdx = 0; mipLevelNdx < aspectRequirements.imageMipTailFirstLod; ++mipLevelNdx)
                {
                        const VkExtent3D        mipExtent               = mipLevelExtents(imageCreateInfo.extent, mipLevelNdx);
-                       const tcu::UVec3        numSparseBinds  = alignedDivide(mipExtent, imageGranularity);
-                       const tcu::UVec3        lastBlockExtent = tcu::UVec3(mipExtent.width  % imageGranularity.width  ? mipExtent.width  % imageGranularity.width  : imageGranularity.width,
-                                                                                                                        mipExtent.height % imageGranularity.height ? mipExtent.height % imageGranularity.height : imageGranularity.height,
-                                                                                                                        mipExtent.depth  % imageGranularity.depth  ? mipExtent.depth  % imageGranularity.depth  : imageGranularity.depth );
+                       const tcu::UVec3        numSparseBinds  = alignedDivide(mipExtent, blockSize);
+                       const tcu::UVec3        lastBlockExtent = tcu::UVec3(mipExtent.width  % blockSize.width  ? mipExtent.width  % blockSize.width  : blockSize.width,
+                                                                                                                        mipExtent.height % blockSize.height ? mipExtent.height % blockSize.height : blockSize.height,
+                                                                                                                        mipExtent.depth  % blockSize.depth  ? mipExtent.depth  % blockSize.depth  : blockSize.depth );
 
                        for (deUint32 z = 0; z < numSparseBinds.z(); ++z)
                        for (deUint32 y = 0; y < numSparseBinds.y(); ++y)
@@ -4773,14 +4780,14 @@ void allocateAndBindSparseImage (const DeviceInterface&                                         vk,
                                allocations.push_back(allocation);
 
                                VkOffset3D offset;
-                               offset.x = x*imageGranularity.width;
-                               offset.y = y*imageGranularity.height;
-                               offset.z = z*imageGranularity.depth;
+                               offset.x = x*blockSize.width;
+                               offset.y = y*blockSize.height;
+                               offset.z = z*blockSize.depth;
 
                                VkExtent3D extent;
-                               extent.width    = (x == numSparseBinds.x() - 1) ? lastBlockExtent.x() : imageGranularity.width;
-                               extent.height   = (y == numSparseBinds.y() - 1) ? lastBlockExtent.y() : imageGranularity.height;
-                               extent.depth    = (z == numSparseBinds.z() - 1) ? lastBlockExtent.z() : imageGranularity.depth;
+                               extent.width    = (x == numSparseBinds.x() - 1) ? lastBlockExtent.x() : blockSize.width;
+                               extent.height   = (y == numSparseBinds.y() - 1) ? lastBlockExtent.y() : blockSize.height;
+                               extent.depth    = (z == numSparseBinds.z() - 1) ? lastBlockExtent.z() : blockSize.depth;
 
                                const VkSparseImageMemoryBind imageMemoryBind =
                                {
index 28fb0cd..9ea2c51 100644 (file)
@@ -53,6 +53,101 @@ using std::vector;
 using tcu::Sampler;
 using tcu::TestLog;
 
+// Compressed formats
+static const struct {
+       const VkFormat  format;
+} formats[] =
+{
+       { VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK             },
+       { VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK              },
+       { VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK   },
+       { VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK    },
+       { VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK   },
+       { VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK    },
+
+       { VK_FORMAT_EAC_R11_UNORM_BLOCK                 },
+       { VK_FORMAT_EAC_R11_SNORM_BLOCK                 },
+       { VK_FORMAT_EAC_R11G11_UNORM_BLOCK              },
+       { VK_FORMAT_EAC_R11G11_SNORM_BLOCK              },
+
+       { VK_FORMAT_ASTC_4x4_UNORM_BLOCK                },
+       { VK_FORMAT_ASTC_4x4_SRGB_BLOCK                 },
+       { VK_FORMAT_ASTC_5x4_UNORM_BLOCK                },
+       { VK_FORMAT_ASTC_5x4_SRGB_BLOCK                 },
+       { VK_FORMAT_ASTC_5x5_UNORM_BLOCK                },
+       { VK_FORMAT_ASTC_5x5_SRGB_BLOCK                 },
+       { VK_FORMAT_ASTC_6x5_UNORM_BLOCK                },
+       { VK_FORMAT_ASTC_6x5_SRGB_BLOCK                 },
+       { VK_FORMAT_ASTC_6x6_UNORM_BLOCK                },
+       { VK_FORMAT_ASTC_6x6_SRGB_BLOCK                 },
+       { VK_FORMAT_ASTC_8x5_UNORM_BLOCK                },
+       { VK_FORMAT_ASTC_8x5_SRGB_BLOCK                 },
+       { VK_FORMAT_ASTC_8x6_UNORM_BLOCK                },
+       { VK_FORMAT_ASTC_8x6_SRGB_BLOCK                 },
+       { VK_FORMAT_ASTC_8x8_UNORM_BLOCK                },
+       { VK_FORMAT_ASTC_8x8_SRGB_BLOCK                 },
+       { VK_FORMAT_ASTC_10x5_UNORM_BLOCK               },
+       { VK_FORMAT_ASTC_10x5_SRGB_BLOCK                },
+       { VK_FORMAT_ASTC_10x6_UNORM_BLOCK               },
+       { VK_FORMAT_ASTC_10x6_SRGB_BLOCK                },
+       { VK_FORMAT_ASTC_10x8_UNORM_BLOCK               },
+       { VK_FORMAT_ASTC_10x8_SRGB_BLOCK                },
+       { VK_FORMAT_ASTC_10x10_UNORM_BLOCK              },
+       { VK_FORMAT_ASTC_10x10_SRGB_BLOCK               },
+       { VK_FORMAT_ASTC_12x10_UNORM_BLOCK              },
+       { VK_FORMAT_ASTC_12x10_SRGB_BLOCK               },
+       { VK_FORMAT_ASTC_12x12_UNORM_BLOCK              },
+       { VK_FORMAT_ASTC_12x12_SRGB_BLOCK               },
+
+       { VK_FORMAT_BC1_RGB_UNORM_BLOCK                 },
+       { VK_FORMAT_BC1_RGB_SRGB_BLOCK                  },
+       { VK_FORMAT_BC1_RGBA_UNORM_BLOCK                },
+       { VK_FORMAT_BC1_RGBA_SRGB_BLOCK                 },
+       { VK_FORMAT_BC2_UNORM_BLOCK                             },
+       { VK_FORMAT_BC2_SRGB_BLOCK                              },
+       { VK_FORMAT_BC3_UNORM_BLOCK                             },
+       { VK_FORMAT_BC3_SRGB_BLOCK                              },
+       { VK_FORMAT_BC4_UNORM_BLOCK                             },
+       { VK_FORMAT_BC4_SNORM_BLOCK                             },
+       { VK_FORMAT_BC5_UNORM_BLOCK                             },
+       { VK_FORMAT_BC5_SNORM_BLOCK                             },
+       { VK_FORMAT_BC6H_UFLOAT_BLOCK                   },
+       { VK_FORMAT_BC6H_SFLOAT_BLOCK                   },
+       { VK_FORMAT_BC7_UNORM_BLOCK                             },
+       { VK_FORMAT_BC7_SRGB_BLOCK                              }
+};
+
+static const struct {
+       const int       width;
+       const int       height;
+       const int   depth;              // 2D test ignore depth value
+       const char*     name;
+} sizes[] =
+{
+       { 128, 64, 8,  "pot"  },
+       { 51,  65, 17, "npot" },
+};
+
+static const struct {
+       const char*                                                             name;
+       const TextureBinding::ImageBackingMode  backingMode;
+} backingModes[] =
+{
+       { "",                   TextureBinding::IMAGE_BACKING_MODE_REGULAR      },
+       { "_sparse",    TextureBinding::IMAGE_BACKING_MODE_SPARSE       }
+};
+
+struct Compressed3DTestParameters : public Texture3DTestCaseParameters
+{
+                                                                               Compressed3DTestParameters      (void);
+       TextureBinding::ImageBackingMode        backingMode;
+};
+
+Compressed3DTestParameters::Compressed3DTestParameters (void)
+       : backingMode(TextureBinding::IMAGE_BACKING_MODE_REGULAR)
+{
+}
+
 struct Compressed2DTestParameters : public Texture2DTestCaseParameters
 {
                                                                                Compressed2DTestParameters      (void);
@@ -161,92 +256,145 @@ tcu::TestStatus Compressed2DTestInstance::iterate (void)
        return isOk ? tcu::TestStatus::pass("Pass") : tcu::TestStatus::fail("Image verification failed");
 }
 
-void populateTextureCompressedFormatTests (tcu::TestCaseGroup* compressedTextureTests)
+class Compressed3DTestInstance : public TestInstance
 {
-       tcu::TestContext&       testCtx = compressedTextureTests->getTestContext();
+public:
+       typedef Compressed3DTestParameters      ParameterType;
+
+                                                                               Compressed3DTestInstance        (Context&                               context,
+                                                                                                                                        const ParameterType&   testParameters);
+       tcu::TestStatus                                         iterate                                         (void);
+
+private:
+                                                                               Compressed3DTestInstance        (const Compressed3DTestInstance& other);
+       Compressed3DTestInstance&                       operator=                                       (const Compressed3DTestInstance& other);
+
+       const ParameterType&                            m_testParameters;
+       const tcu::CompressedTexFormat          m_compressedFormat;
+       TestTexture3DSp                                         m_texture3D;
+       TextureRenderer                                         m_renderer3D;
+};
 
-       // ETC2 and EAC compressed formats.
-       static const struct {
-               const VkFormat  format;
-       } formats[] =
+Compressed3DTestInstance::Compressed3DTestInstance (Context&                           context,
+                                                                                                       const ParameterType&    testParameters)
+       : TestInstance                  (context)
+       , m_testParameters              (testParameters)
+       , m_compressedFormat    (mapVkCompressedFormat(testParameters.format))
+       , m_texture3D                   (TestTexture3DSp(new pipeline::TestTexture3D(m_compressedFormat, testParameters.width, testParameters.height, testParameters.depth)))
+       , m_renderer3D                  (context, testParameters.sampleCount, testParameters.width, testParameters.height, testParameters.depth, makeComponentMappingRGBA(), VK_IMAGE_TYPE_3D, VK_IMAGE_VIEW_TYPE_3D)
+{
+       m_renderer3D.add3DTexture               (m_texture3D, testParameters.aspectMask, testParameters.backingMode);
+
+       VkPhysicalDeviceFeatures                physicalFeatures;
+       context.getInstanceInterface().getPhysicalDeviceFeatures(context.getPhysicalDevice(), &physicalFeatures);
+
+       if (tcu::isAstcFormat(m_compressedFormat))
        {
-               { VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK             },
-               { VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK              },
-               { VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK   },
-               { VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK    },
-               { VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK   },
-               { VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK    },
-
-               { VK_FORMAT_EAC_R11_UNORM_BLOCK                 },
-               { VK_FORMAT_EAC_R11_SNORM_BLOCK                 },
-               { VK_FORMAT_EAC_R11G11_UNORM_BLOCK              },
-               { VK_FORMAT_EAC_R11G11_SNORM_BLOCK              },
-
-               { VK_FORMAT_ASTC_4x4_UNORM_BLOCK                },
-               { VK_FORMAT_ASTC_4x4_SRGB_BLOCK                 },
-               { VK_FORMAT_ASTC_5x4_UNORM_BLOCK                },
-               { VK_FORMAT_ASTC_5x4_SRGB_BLOCK                 },
-               { VK_FORMAT_ASTC_5x5_UNORM_BLOCK                },
-               { VK_FORMAT_ASTC_5x5_SRGB_BLOCK                 },
-               { VK_FORMAT_ASTC_6x5_UNORM_BLOCK                },
-               { VK_FORMAT_ASTC_6x5_SRGB_BLOCK                 },
-               { VK_FORMAT_ASTC_6x6_UNORM_BLOCK                },
-               { VK_FORMAT_ASTC_6x6_SRGB_BLOCK                 },
-               { VK_FORMAT_ASTC_8x5_UNORM_BLOCK                },
-               { VK_FORMAT_ASTC_8x5_SRGB_BLOCK                 },
-               { VK_FORMAT_ASTC_8x6_UNORM_BLOCK                },
-               { VK_FORMAT_ASTC_8x6_SRGB_BLOCK                 },
-               { VK_FORMAT_ASTC_8x8_UNORM_BLOCK                },
-               { VK_FORMAT_ASTC_8x8_SRGB_BLOCK                 },
-               { VK_FORMAT_ASTC_10x5_UNORM_BLOCK               },
-               { VK_FORMAT_ASTC_10x5_SRGB_BLOCK                },
-               { VK_FORMAT_ASTC_10x6_UNORM_BLOCK               },
-               { VK_FORMAT_ASTC_10x6_SRGB_BLOCK                },
-               { VK_FORMAT_ASTC_10x8_UNORM_BLOCK               },
-               { VK_FORMAT_ASTC_10x8_SRGB_BLOCK                },
-               { VK_FORMAT_ASTC_10x10_UNORM_BLOCK              },
-               { VK_FORMAT_ASTC_10x10_SRGB_BLOCK               },
-               { VK_FORMAT_ASTC_12x10_UNORM_BLOCK              },
-               { VK_FORMAT_ASTC_12x10_SRGB_BLOCK               },
-               { VK_FORMAT_ASTC_12x12_UNORM_BLOCK              },
-               { VK_FORMAT_ASTC_12x12_SRGB_BLOCK               },
-
-               { VK_FORMAT_BC1_RGB_UNORM_BLOCK                 },
-               { VK_FORMAT_BC1_RGB_SRGB_BLOCK                  },
-               { VK_FORMAT_BC1_RGBA_UNORM_BLOCK                },
-               { VK_FORMAT_BC1_RGBA_SRGB_BLOCK                 },
-               { VK_FORMAT_BC2_UNORM_BLOCK                             },
-               { VK_FORMAT_BC2_SRGB_BLOCK                              },
-               { VK_FORMAT_BC3_UNORM_BLOCK                             },
-               { VK_FORMAT_BC3_SRGB_BLOCK                              },
-               { VK_FORMAT_BC4_UNORM_BLOCK                             },
-               { VK_FORMAT_BC4_SNORM_BLOCK                             },
-               { VK_FORMAT_BC5_UNORM_BLOCK                             },
-               { VK_FORMAT_BC5_SNORM_BLOCK                             },
-               { VK_FORMAT_BC6H_UFLOAT_BLOCK                   },
-               { VK_FORMAT_BC6H_SFLOAT_BLOCK                   },
-               { VK_FORMAT_BC7_UNORM_BLOCK                             },
-               { VK_FORMAT_BC7_SRGB_BLOCK                              }
-       };
-
-       static const struct {
-               const int       width;
-               const int       height;
-               const char*     name;
-       } sizes[] =
+               if (!physicalFeatures.textureCompressionASTC_LDR)
+                       throw tcu::NotSupportedError(std::string("Unsupported format: ") + getFormatName(testParameters.format));
+       }
+       else if (tcu::isEtcFormat(m_compressedFormat))
+       {
+               if (!physicalFeatures.textureCompressionETC2)
+                       throw tcu::NotSupportedError(std::string("Unsupported format: ") + getFormatName(testParameters.format));
+       }
+       else if(tcu::isBcFormat(m_compressedFormat))
        {
-               { 128, 64, "pot"  },
-               { 51,  65, "npot" },
-       };
-
-       static const struct {
-               const char*                                                             name;
-               const TextureBinding::ImageBackingMode  backingMode;
-       } backingModes[] =
+               if (!physicalFeatures.textureCompressionBC)
+                       throw tcu::NotSupportedError(std::string("Unsupported format: ") + getFormatName(testParameters.format));
+       }
+       else
        {
-               { "",                   TextureBinding::IMAGE_BACKING_MODE_REGULAR      },
-               { "_sparse",    TextureBinding::IMAGE_BACKING_MODE_SPARSE       }
-       };
+               DE_FATAL("Unsupported compressed format");
+       }
+}
+
+tcu::TestStatus Compressed3DTestInstance::iterate (void)
+{
+       tcu::TestLog&                                   log                             = m_context.getTestContext().getLog();
+       const pipeline::TestTexture3D&  texture                 = m_renderer3D.get3DTexture(0);
+       const tcu::TextureFormat                textureFormat   = texture.getTextureFormat();
+       const tcu::TextureFormatInfo    formatInfo              = tcu::getTextureFormatInfo(textureFormat);
+
+       ReferenceParams                                 sampleParams    (TEXTURETYPE_3D);
+       tcu::Surface                                    rendered                (m_renderer3D.getRenderWidth(), m_renderer3D.getRenderHeight());
+       vector<float>                                   texCoord;
+
+       // Setup params for reference.
+       sampleParams.sampler                    = util::createSampler(m_testParameters.wrapS, m_testParameters.wrapT, m_testParameters.minFilter, m_testParameters.magFilter);
+       sampleParams.samplerType                = SAMPLERTYPE_FLOAT;
+       sampleParams.lodMode                    = LODMODE_EXACT;
+
+       if (isAstcFormat(m_compressedFormat)
+               || m_compressedFormat == tcu::COMPRESSEDTEXFORMAT_BC4_UNORM_BLOCK
+               || m_compressedFormat == tcu::COMPRESSEDTEXFORMAT_BC5_UNORM_BLOCK)
+       {
+               sampleParams.colorBias                  = tcu::Vec4(0.0f);
+               sampleParams.colorScale                 = tcu::Vec4(1.0f);
+       }
+       else if (m_compressedFormat == tcu::COMPRESSEDTEXFORMAT_BC4_SNORM_BLOCK)
+       {
+               sampleParams.colorBias                  = tcu::Vec4(0.5f, 0.0f, 0.0f, 0.0f);
+               sampleParams.colorScale                 = tcu::Vec4(0.5f, 1.0f, 1.0f, 1.0f);
+       }
+       else if (m_compressedFormat == tcu::COMPRESSEDTEXFORMAT_BC5_SNORM_BLOCK)
+       {
+               sampleParams.colorBias                  = tcu::Vec4(0.5f, 0.5f, 0.0f, 0.0f);
+               sampleParams.colorScale                 = tcu::Vec4(0.5f, 0.5f, 1.0f, 1.0f);
+       }
+       else
+       {
+               sampleParams.colorBias                  = formatInfo.lookupBias;
+               sampleParams.colorScale                 = formatInfo.lookupScale;
+       }
+
+       log << TestLog::Message << "Compare reference value = " << sampleParams.ref << TestLog::EndMessage;
+
+       constexpr deUint32              slices                  = 3;
+       deUint32                                sliceNdx                = 0;
+       float                                   z                               = 0;
+       bool                                    isOk                    = false;
+       const tcu::IVec4                formatBitDepth  = getTextureFormatBitDepth(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM));
+       const tcu::PixelFormat  pixelFormat     (formatBitDepth[0], formatBitDepth[1], formatBitDepth[2], formatBitDepth[3]);
+       tcu::RGBA                               threshold;
+
+       if (isBcBitExactFormat(m_compressedFormat))
+               threshold = tcu::RGBA(1, 1, 1, 1);
+       else if (isBcSRGBFormat(m_compressedFormat))
+               threshold = tcu::RGBA(9, 9, 9, 9);
+       else if (isBcFormat(m_compressedFormat))
+               threshold = tcu::RGBA(8, 8, 8, 8);
+       else
+               threshold = pixelFormat.getColorThreshold() + tcu::RGBA(2, 2, 2, 2);
+
+       for (deUint32 s = 0; s < slices; ++s)
+       {
+               // Test different slices of 3D texture.
+
+               sliceNdx = (m_testParameters.depth - 1) * s / (slices - 1);
+
+               // Render texture.
+               z = ((float)sliceNdx + 0.5f) / (float)m_testParameters.depth;
+               computeQuadTexCoord3D(texCoord, tcu::Vec3(0.0f, 0.0f, z), tcu::Vec3(1.0f, 1.0f, z), tcu::IVec3(0,1,2));
+               m_renderer3D.renderQuad(rendered, 0, &texCoord[0], sampleParams);
+
+               // Compute reference.
+               tcu::Surface referenceFrame     (m_renderer3D.getRenderWidth(), m_renderer3D.getRenderHeight());
+               sampleTexture(tcu::SurfaceAccess(referenceFrame, pixelFormat), m_texture3D->getTexture(), &texCoord[0], sampleParams);
+
+               // Compare and log.
+               isOk = compareImages(log, referenceFrame, rendered, threshold);
+
+               if (!isOk)
+                       break;
+       }
+
+       return isOk ? tcu::TestStatus::pass("Pass") : tcu::TestStatus::fail("Image verification failed");
+}
+
+void populateTextureCompressedFormatTests (tcu::TestCaseGroup* compressedTextureTests)
+{
+       tcu::TestContext&       testCtx = compressedTextureTests->getTestContext();
 
        for (int sizeNdx = 0; sizeNdx < DE_LENGTH_OF_ARRAY(sizes); sizeNdx++)
        for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); formatNdx++)
@@ -269,6 +417,32 @@ void populateTextureCompressedFormatTests (tcu::TestCaseGroup* compressedTexture
        }
 }
 
+void populate3DTextureCompressedFormatTests (tcu::TestCaseGroup* compressedTextureTests)
+{
+       tcu::TestContext&       testCtx = compressedTextureTests->getTestContext();
+
+       for (int sizeNdx = 0; sizeNdx < DE_LENGTH_OF_ARRAY(sizes); ++sizeNdx)
+       for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); ++formatNdx)
+       for (int backingNdx = 0; backingNdx < DE_LENGTH_OF_ARRAY(backingModes); ++backingNdx)
+       {
+               const string    formatStr       = de::toString(getFormatStr(formats[formatNdx].format));
+               const string    nameBase        = de::toLower(formatStr.substr(10));
+
+               Compressed3DTestParameters      testParameters;
+               testParameters.format           = formats[formatNdx].format;
+               testParameters.backingMode      = backingModes[backingNdx].backingMode;
+               testParameters.width            = sizes[sizeNdx].width;
+               testParameters.height           = sizes[sizeNdx].height;
+               testParameters.depth        = sizes[sizeNdx].depth;
+               testParameters.minFilter        = tcu::Sampler::NEAREST;
+               testParameters.magFilter        = tcu::Sampler::NEAREST;
+               testParameters.aspectMask       = VK_IMAGE_ASPECT_COLOR_BIT;
+               testParameters.programs.push_back(PROGRAM_3D_FLOAT);
+
+               compressedTextureTests->addChild(new TextureTestCase<Compressed3DTestInstance>(testCtx, (nameBase + "_3d_" + sizes[sizeNdx].name + backingModes[backingNdx].name).c_str(), (formatStr + ", TEXTURETYPE_3D").c_str(), testParameters));
+       }
+}
+
 } // anonymous
 
 tcu::TestCaseGroup* createTextureCompressedFormatTests (tcu::TestContext& testCtx)
@@ -276,5 +450,10 @@ tcu::TestCaseGroup* createTextureCompressedFormatTests (tcu::TestContext& testCt
        return createTestGroup(testCtx, "compressed", "Texture compressed format tests.", populateTextureCompressedFormatTests);
 }
 
+tcu::TestCaseGroup* create3DTextureCompressedFormatTests (tcu::TestContext& testCtx)
+{
+       return createTestGroup(testCtx, "compressed_3D", "3D texture compressed format tests.", populate3DTextureCompressedFormatTests);
+}
+
 } // texture
 } // vkt
index 378368d..a838124 100644 (file)
@@ -32,7 +32,8 @@ namespace vkt
 namespace texture
 {
 
-tcu::TestCaseGroup*            createTextureCompressedFormatTests      (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*            createTextureCompressedFormatTests              (tcu::TestContext& testCtx);
+tcu::TestCaseGroup*            create3DTextureCompressedFormatTests    (tcu::TestContext& testCtx);
 
 } // texture
 } // vkt
index edefe46..14b2cbe 100644 (file)
@@ -469,11 +469,17 @@ void TextureBinding::updateTextureViewMipLevels (deUint32 baseLevel, deUint32 ma
 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, VkComponentMapping componentMapping)
+TextureRenderer::TextureRenderer(Context& context, vk::VkSampleCountFlagBits sampleCount, deUint32 renderWidth, deUint32 renderHeight, vk::VkComponentMapping componentMapping)
+       : TextureRenderer(context, sampleCount, renderWidth, renderHeight, 1u, componentMapping)
+{
+}
+
+TextureRenderer::TextureRenderer (Context& context, VkSampleCountFlagBits sampleCount, deUint32 renderWidth, deUint32 renderHeight, deUint32 renderDepth, VkComponentMapping componentMapping, VkImageType imageType, VkImageViewType imageViewType)
        : m_context                                     (context)
        , m_log                                         (context.getTestContext().getLog())
        , m_renderWidth                         (renderWidth)
        , m_renderHeight                        (renderHeight)
+       , m_renderDepth                         (renderDepth)
        , m_sampleCount                         (sampleCount)
        , m_multisampling                       (m_sampleCount != VK_SAMPLE_COUNT_1_BIT)
        , m_imageFormat                         (VK_FORMAT_R8G8B8A8_UNORM)
@@ -501,7 +507,7 @@ TextureRenderer::TextureRenderer (Context& context, VkSampleCountFlagBits sample
 
                if ((m_context.getInstanceInterface().getPhysicalDeviceImageFormatProperties(m_context.getPhysicalDevice(),
                                                                                                                                                                         m_imageFormat,
-                                                                                                                                                                        VK_IMAGE_TYPE_2D,
+                                                                                                                                                                        imageType,
                                                                                                                                                                         VK_IMAGE_TILING_OPTIMAL,
                                                                                                                                                                         imageUsage,
                                                                                                                                                                         0,
@@ -517,21 +523,21 @@ TextureRenderer::TextureRenderer (Context& context, VkSampleCountFlagBits sample
 
                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;
+                       VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,                            // VkStructureType                      sType;
+                       DE_NULL,                                                                                        // const void*                          pNext;
+                       0u,                                                                                                     // VkImageCreateFlags           flags;
+                       imageType,                                                                                      // VkImageType                          imageType;
+                       m_imageFormat,                                                                          // VkFormat                                     format;
+                       { m_renderWidth, m_renderHeight, m_renderDepth },       // 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);
@@ -548,7 +554,7 @@ TextureRenderer::TextureRenderer (Context& context, VkSampleCountFlagBits sample
                        DE_NULL,                                                                        // const void*                                  pNext;
                        0u,                                                                                     // VkImageViewCreateFlags               flags;
                        *m_image,                                                                       // VkImage                                              image;
-                       VK_IMAGE_VIEW_TYPE_2D,                                          // VkImageViewType                              viewType;
+                       imageViewType,                                                          // VkImageViewType                              viewType;
                        m_imageFormat,                                                          // VkFormat                                             format;
                        makeComponentMappingRGBA(),                                     // VkComponentMapping                   components;
                        {
@@ -572,7 +578,7 @@ TextureRenderer::TextureRenderer (Context& context, VkSampleCountFlagBits sample
 
                        if ((m_context.getInstanceInterface().getPhysicalDeviceImageFormatProperties(m_context.getPhysicalDevice(),
                                                                                                                                                                                 m_imageFormat,
-                                                                                                                                                                                VK_IMAGE_TYPE_2D,
+                                                                                                                                                                                imageType,
                                                                                                                                                                                 VK_IMAGE_TILING_OPTIMAL,
                                                                                                                                                                                 imageUsage,
                                                                                                                                                                                 0,
@@ -583,21 +589,21 @@ TextureRenderer::TextureRenderer (Context& context, VkSampleCountFlagBits sample
 
                        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;
+                               VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,                            // VkStructureType                      sType;
+                               DE_NULL,                                                                                        // const void*                          pNext;
+                               0u,                                                                                                     // VkImageCreateFlags           flags;
+                               imageType,                                                                                      // VkImageType                          imageType;
+                               m_imageFormat,                                                                          // VkFormat                                     format;
+                               { m_renderWidth, m_renderHeight, m_renderDepth },       // 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);
@@ -613,7 +619,7 @@ TextureRenderer::TextureRenderer (Context& context, VkSampleCountFlagBits sample
                                DE_NULL,                                                                        // const void*                                  pNext;
                                0u,                                                                                     // VkImageViewCreateFlags               flags;
                                *m_resolvedImage,                                                       // VkImage                                              image;
-                               VK_IMAGE_VIEW_TYPE_2D,                                          // VkImageViewType                              viewType;
+                               imageViewType,                                                          // VkImageViewType                              viewType;
                                m_imageFormat,                                                          // VkFormat                                             format;
                                makeComponentMappingRGBA(),                                     // VkComponentMapping                   components;
                                {
index 89f582b..7acf075 100644 (file)
@@ -176,7 +176,21 @@ typedef de::SharedPtr<TextureBinding>      TextureBindingSp;
 class TextureRenderer
 {
 public:
-                                                                               TextureRenderer                         (Context& context, vk::VkSampleCountFlagBits sampleCount, deUint32 renderWidth, deUint32 renderHeight, vk::VkComponentMapping componentMapping = vk::makeComponentMappingRGBA());
+                                                                               TextureRenderer                         (Context& context,
+                                                                                                                                        vk::VkSampleCountFlagBits sampleCount,
+                                                                                                                                        deUint32 renderWidth,
+                                                                                                                                        deUint32 renderHeight,
+                                                                                                                                        vk::VkComponentMapping componentMapping = vk::makeComponentMappingRGBA());
+
+                                                                               TextureRenderer                         (Context& context,
+                                                                                                                                        vk::VkSampleCountFlagBits sampleCount,
+                                                                                                                                        deUint32 renderWidth,
+                                                                                                                                        deUint32 renderHeight,
+                                                                                                                                        deUint32 renderDepth,
+                                                                                                                                        vk::VkComponentMapping componentMapping = vk::makeComponentMappingRGBA(),
+                                                                                                                                        vk::VkImageType imageType = vk::VK_IMAGE_TYPE_2D,
+                                                                                                                                        vk::VkImageViewType imageViewType = vk::VK_IMAGE_VIEW_TYPE_2D);
+
                                                                                ~TextureRenderer                        (void);
 
        void                                                            renderQuad                                      (tcu::Surface& result, int texUnit, const float* texCoord, glu::TextureTestUtil::TextureType texType);
@@ -225,6 +239,7 @@ protected:
 
        const deUint32                                          m_renderWidth;
        const deUint32                                          m_renderHeight;
+       const deUint32                                          m_renderDepth;
        const vk::VkSampleCountFlagBits         m_sampleCount;
        const deBool                                            m_multisampling;
 
index 3509ba7..bda37dd 100644 (file)
@@ -55,6 +55,7 @@ void createTextureTests (tcu::TestCaseGroup* textureTests)
        textureTests->addChild(createTextureShadowTests                         (testCtx));
        textureTests->addChild(createFilteringAnisotropyTests           (testCtx));
        textureTests->addChild(createTextureCompressedFormatTests       (testCtx));
+       textureTests->addChild(create3DTextureCompressedFormatTests     (testCtx));
        textureTests->addChild(createTextureSwizzleTests                        (testCtx));
        textureTests->addChild(createTextureSubgroupLodTests            (testCtx));
        textureTests->addChild(createTextureConversionTests                     (testCtx));
index 9b30e43..7264f49 100644 (file)
@@ -615568,6 +615568,222 @@ dEQP-VK.texture.compressed.bc7_unorm_block_2d_npot
 dEQP-VK.texture.compressed.bc7_unorm_block_2d_npot_sparse
 dEQP-VK.texture.compressed.bc7_srgb_block_2d_npot
 dEQP-VK.texture.compressed.bc7_srgb_block_2d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_pot
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_pot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a1_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.etc2_r8g8b8a8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11g11_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.eac_r11g11_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_4x4_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_4x4_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x4_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x4_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_5x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x6_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_6x6_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x6_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x6_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_8x8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x5_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x6_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x6_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x8_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x8_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x10_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_10x10_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x10_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x10_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x12_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.astc_12x12_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgb_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgb_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgba_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc1_rgba_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc2_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc2_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc3_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc3_srgb_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc4_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc4_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc5_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc5_snorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc6h_ufloat_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc6h_sfloat_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc7_unorm_block_3d_npot_sparse
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_npot
+dEQP-VK.texture.compressed_3D.bc7_srgb_block_3d_npot_sparse
 dEQP-VK.texture.swizzle.component_mapping.r4g4_unorm_pack8_2d_pot_zzzz
 dEQP-VK.texture.swizzle.component_mapping.r4g4_unorm_pack8_2d_pot_oooo
 dEQP-VK.texture.swizzle.component_mapping.r4g4_unorm_pack8_2d_pot_rrrr