Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/vulkan-cts-1.2.7
authorMatthew Netsch <quic_mnetsch@quicinc.com>
Thu, 2 Jun 2022 19:51:27 +0000 (12:51 -0700)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Thu, 2 Jun 2022 19:51:27 +0000 (12:51 -0700)
Change-Id: I8931b5406a04f317c172c1357c1ab3b2c7b12be3

20 files changed:
android/cts/master/src/vk-master-2019-03-01.txt
android/cts/master/vk-master-2019-03-01/image.txt
android/cts/master/vk-master/image.txt
external/openglcts/modules/common/glcLimitTest.hpp
external/openglcts/modules/common/glcLimitTest.inl
external/openglcts/modules/common/glcShaderMultisampleInterpolationTests.cpp
external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
external/vulkancts/modules/vulkan/compute/vktComputeBasicComputeShaderTests.cpp
external/vulkancts/modules/vulkan/draw/vktDrawConcurrentTests.cpp
external/vulkancts/modules/vulkan/fragment_shading_rate/vktFragmentShadingRateBasic.cpp
external/vulkancts/modules/vulkan/image/vktImageCompressionTranscodingSupport.cpp
external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp
external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderUtil.cpp
external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp
external/vulkancts/modules/vulkan/shaderexecutor/vktShaderFConvertTests.cpp
external/vulkancts/mustpass/master/vk-default/image.txt
modules/gles3/functional/es3fShaderOperatorTests.cpp
modules/gles31/functional/es31fPrimitiveBoundingBoxTests.cpp
modules/gles31/functional/es31fShaderMultisampleInterpolationStateQueryTests.cpp

index 3261b42..f341b85 100644 (file)
@@ -320849,186 +320849,6 @@ dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_unorm_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_uint
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_unorm
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_snorm
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_uscaled
@@ -322649,186 +322469,6 @@ dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_unorm_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_uint
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_unorm
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_snorm
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_uscaled
index c029bca..6f9faed 100644 (file)
@@ -18072,186 +18072,6 @@ dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_unorm_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_uint
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_unorm
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_snorm
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_uscaled
@@ -19872,186 +19692,6 @@ dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_unorm_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_uint
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_unorm
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_snorm
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_uscaled
index 1660d28..9af9f52 100644 (file)
@@ -25202,186 +25202,6 @@ dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_unorm_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_uint
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_unorm
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_snorm
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_uscaled
@@ -27002,186 +26822,6 @@ dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_unorm_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_uint
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_unorm
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_snorm
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_uscaled
index ef2a059..9297431 100644 (file)
@@ -42,15 +42,15 @@ template <typename DataType>
 class LimitCase : public deqp::TestCase
 {
 public:
-       LimitCase(deqp::Context& context, const char* caseName, deUint32 limitToken, DataType limitBoundry,
-                         bool isBoundryMaximum, const char* glslVersion = "", const char* glslBuiltin = "",
+       LimitCase(deqp::Context& context, const char* caseName, deUint32 limitToken, DataType limitBoundary,
+                         bool isBoundaryMaximum, const char* glslVersion = "", const char* glslBuiltin = "",
                          const char* glslExtension = "");
        virtual ~LimitCase(void);
 
        tcu::TestNode::IterateResult iterate(void);
 
 protected:
-       bool isWithinBoundry(DataType value, bool isBuiltin = false) const;
+       bool isWithinBoundary(DataType value, bool isBuiltin = false) const;
        std::string createShader() const;
 
        // those functions require specialization for some data types
@@ -64,9 +64,11 @@ private:
        LimitCase(const LimitCase&);                    // not allowed!
        LimitCase& operator=(const LimitCase&); // not allowed!
 
+       void adjustBoundaryForMaxFragmentInterpolationOffset();
+
        deUint32                  m_limitToken;
-       DataType                  m_limitBoundry; // min/max value
-       bool                      m_isBoundryMaximum;
+       DataType                  m_limitBoundary; // min/max value
+       bool                      m_isBoundaryMaximum;
        const std::string m_glslVersion;
        const std::string m_glslBuiltin;
        const std::string m_glslExtension;
index 404c4ba..8c346a9 100644 (file)
@@ -27,19 +27,22 @@ template<typename DataType>
 LimitCase<DataType>::LimitCase(deqp::Context& context,
                                                           const char* caseName,
                                                           deUint32 limitToken,
-                                                          DataType limitBoundry,
-                                                          bool isBoundryMaximum,
+                                                          DataType limitBoundary,
+                                                          bool isBoundaryMaximum,
                                                           const char* glslVersion,
                                                           const char* glslBuiltin,
                                                           const char* glslExtension)
        : deqp::TestCase(context, caseName, "Token limit validation.")
        , m_limitToken(limitToken)
-       , m_limitBoundry(limitBoundry)
-       , m_isBoundryMaximum(isBoundryMaximum)
+       , m_limitBoundary(limitBoundary)
+       , m_isBoundaryMaximum(isBoundaryMaximum)
        , m_glslVersion(glslVersion)
        , m_glslBuiltin(glslBuiltin)
        , m_glslExtension(glslExtension)
 {
+       // GL_MAX_FRAGMENT_INTERPOLATION_OFFSET is special in that its limit is dependent on
+       // GL_FRAGMENT_INTERPOLATION_OFFSET_BITS.  Adjust the limit automatically here.
+       adjustBoundaryForMaxFragmentInterpolationOffset();
 }
 
 template<typename DataType>
@@ -48,6 +51,27 @@ LimitCase<DataType>::~LimitCase(void)
 }
 
 template<typename DataType>
+void LimitCase<DataType>::adjustBoundaryForMaxFragmentInterpolationOffset()
+{
+}
+
+template<>
+void LimitCase<GLfloat>::adjustBoundaryForMaxFragmentInterpolationOffset()
+{
+       if (m_limitToken == GL_MAX_FRAGMENT_INTERPOLATION_OFFSET)
+       {
+               const Functions& gl = m_context.getRenderContext().getFunctions();
+
+               GLfloat fragmentInterpolationOffsetBits = 0;
+               gl.getFloatv(GL_FRAGMENT_INTERPOLATION_OFFSET_BITS, &fragmentInterpolationOffsetBits);
+               GLU_EXPECT_NO_ERROR(gl.getError(), "glGetIntegerv");
+
+               GLfloat ULP = 1.0f / powf(2, fragmentInterpolationOffsetBits);
+               m_limitBoundary -= ULP;
+       }
+}
+
+template<typename DataType>
 tcu::TestNode::IterateResult LimitCase<DataType>::iterate(void)
 {
        DataType limitValue = DataType();
@@ -59,9 +83,9 @@ tcu::TestNode::IterateResult LimitCase<DataType>::iterate(void)
        // check if limit was specified
        if (m_limitToken)
        {
-               // check if limit is not smaller or greater then boundry defined in specification
+               // check if limit is not smaller or greater then boundary defined in specification
                limitValue = getLimitValue(gl);
-               if (!isWithinBoundry(limitValue))
+               if (!isWithinBoundary(limitValue))
                {
                        m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Fail");
                        return STOP;
@@ -134,15 +158,15 @@ tcu::TestNode::IterateResult LimitCase<DataType>::iterate(void)
                        m_testCtx.getLog() << tcu::TestLog::Message
                                                           << "Shader builtin has value: "
                                                           << builtinValue
-                                                          << " which is different then the value of corresponding limit: "
+                                                          << " which is different from the value of corresponding limit: "
                                                           << limitValue
                                                           << tcu::TestLog::EndMessage;
                }
        }
        else
        {
-               // limit token was not specified - compare builtin to the boundry
-               if (isWithinBoundry(builtinValue, true))
+               // limit token was not specified - compare builtin to the boundary
+               if (isWithinBoundary(builtinValue, true))
                {
                        m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
                }
@@ -152,7 +176,7 @@ tcu::TestNode::IterateResult LimitCase<DataType>::iterate(void)
                        m_testCtx.getLog() << tcu::TestLog::Message
                                                           << "Shader builtin value is: "
                                                           << builtinValue
-                                                          << " which is outside of specified boundry."
+                                                          << " which is outside of specified boundary."
                                                           << tcu::TestLog::EndMessage;
                }
        }
@@ -161,34 +185,34 @@ tcu::TestNode::IterateResult LimitCase<DataType>::iterate(void)
 }
 
 template<typename DataType>
-bool LimitCase<DataType>::isWithinBoundry(DataType value, bool isBuiltin) const
+bool LimitCase<DataType>::isWithinBoundary(DataType value, bool isBuiltin) const
 {
-       if (m_isBoundryMaximum)
+       if (m_isBoundaryMaximum)
        {
-               // value should be smaller or euqual to boundry
-               if (isGreater(value, m_limitBoundry))
+               // value should be smaller or euqual to boundary
+               if (isGreater(value, m_limitBoundary))
                {
                        m_testCtx.getLog() << tcu::TestLog::Message
                                                           << (isBuiltin ? "Builtin" : "Limit")
                                                           << " value is: "
                                                           << value
                                                           << " when it should not be greater than "
-                                                          << m_limitBoundry
+                                                          << m_limitBoundary
                                                           << tcu::TestLog::EndMessage;
                        return false;
                }
        }
        else
        {
-               // value should be greater or euqual to boundry
-               if (isSmaller(value, m_limitBoundry))
+               // value should be greater or euqual to boundary
+               if (isSmaller(value, m_limitBoundary))
                {
                        m_testCtx.getLog() << tcu::TestLog::Message
                                                           << (isBuiltin ? "Builtin" : "Limit")
                                                           << " value is: "
                                                           << value
                                                           << "when it should not be smaller than "
-                                                          << m_limitBoundry
+                                                          << m_limitBoundary
                                                           << tcu::TestLog::EndMessage;
                        return false;
                }
index 2b56a34..79c257b 100644 (file)
@@ -190,16 +190,17 @@ ShaderMultisampleInterpolationApiCase::IterateResult ShaderMultisampleInterpolat
                isOk = false;
        }
 
-       GLfloat maxFragmentInterpolationOffset = 0.0f;
-       gl.getFloatv(GL_MAX_FRAGMENT_INTERPOLATION_OFFSET, &maxFragmentInterpolationOffset);
-       if (maxFragmentInterpolationOffset < 0.5f)
+       GLint fragmentInterpolationOffsetBits = 0;
+       gl.getIntegerv(GL_FRAGMENT_INTERPOLATION_OFFSET_BITS, &fragmentInterpolationOffsetBits);
+       if (fragmentInterpolationOffsetBits < 4)
        {
                isOk = false;
        }
+       GLfloat ULP = 1.0f / powf(2, static_cast<float>(fragmentInterpolationOffsetBits));
 
-       GLint fragmentInterpolationOffsetBits = 0;
-       gl.getIntegerv(GL_FRAGMENT_INTERPOLATION_OFFSET_BITS, &fragmentInterpolationOffsetBits);
-       if (fragmentInterpolationOffsetBits < 4)
+       GLfloat maxFragmentInterpolationOffset = 0.0f;
+       gl.getFloatv(GL_MAX_FRAGMENT_INTERPOLATION_OFFSET, &maxFragmentInterpolationOffset);
+       if (maxFragmentInterpolationOffset < 0.5f - ULP)
        {
                isOk = false;
        }
index 644d565..43eadfc 100644 (file)
@@ -4596,12 +4596,18 @@ tcu::TestStatus deviceMemoryProperties2 (Context& context)
                TCU_FAIL("Mismatch between memoryTypeCount reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2");
        if (coreProperties.memoryHeapCount != extProperties.memoryProperties.memoryHeapCount)
                TCU_FAIL("Mismatch between memoryHeapCount reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2");
-       for (deUint32 i = 0; i < coreProperties.memoryTypeCount; i++)
-               if (deMemCmp(&coreProperties.memoryTypes[i], &extProperties.memoryProperties.memoryTypes[i], sizeof(VkMemoryType)) != 0)
+       for (deUint32 i = 0; i < coreProperties.memoryTypeCount; i++) {
+               const VkMemoryType *coreType = &coreProperties.memoryTypes[i];
+               const VkMemoryType *extType = &extProperties.memoryProperties.memoryTypes[i];
+               if (coreType->propertyFlags != extType->propertyFlags || coreType->heapIndex != extType->heapIndex)
                        TCU_FAIL("Mismatch between memoryTypes reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2");
-       for (deUint32 i = 0; i < coreProperties.memoryHeapCount; i++)
-               if (deMemCmp(&coreProperties.memoryHeaps[i], &extProperties.memoryProperties.memoryHeaps[i], sizeof(VkMemoryHeap)) != 0)
+       }
+       for (deUint32 i = 0; i < coreProperties.memoryHeapCount; i++) {
+               const VkMemoryHeap *coreHeap = &coreProperties.memoryHeaps[i];
+               const VkMemoryHeap *extHeap = &extProperties.memoryProperties.memoryHeaps[i];
+               if (coreHeap->size != extHeap->size || coreHeap->flags != extHeap->flags)
                        TCU_FAIL("Mismatch between memoryHeaps reported by vkGetPhysicalDeviceMemoryProperties and vkGetPhysicalDeviceMemoryProperties2");
+       }
 
        log << TestLog::Message << extProperties << TestLog::EndMessage;
 
index 0af3341..fd6a767 100644 (file)
@@ -448,25 +448,39 @@ private:
        deBool regularCheck (const APIContext& ctx, tcu::TestLog& log, deUint32& failsQuantity, const vector<pair<const char*, FunctionOrigin> >& testsArr)
        {
                const deUint32 startingQuantity = failsQuantity;
+
                for (deUint32 ndx = 0u; ndx < testsArr.size(); ++ndx)
                {
-                       if (deStringEqual(testsArr[ndx].first, "vkGetInstanceProcAddr") && m_context.getUsedApiVersion() < VK_API_VERSION_1_2)
+                       const auto&     funcName        = testsArr[ndx].first;
+                       const auto&     funcType        = testsArr[ndx].second;
+                       const auto      apiVersion      = m_context.getUsedApiVersion();
+
+                       if (deStringEqual(funcName, "vkGetInstanceProcAddr") && apiVersion < VK_API_VERSION_1_2)
                                continue;
 
-                       const deUint32 functionType     = testsArr[ndx].second;
-                       if (functionType == FUNCTIONORIGIN_PLATFORM)
-                               checkPlatformFunction(ctx, log, testsArr[ndx].first, DE_TRUE, failsQuantity);
-                       else if (functionType == FUNCTIONORIGIN_INSTANCE)
+                       // VK_KHR_draw_indirect_count was promoted to core in Vulkan 1.2, but these entrypoints are not mandatory unless the
+                       // device supports the extension. In that case, the drawIndirectCount feature bit will also be true. Any of the two
+                       // checks is valid. We use the extension name for convenience here.
+                       if ((deStringEqual(funcName, "vkCmdDrawIndirectCount") || deStringEqual(funcName, "vkCmdDrawIndexedIndirectCount"))
+                               && !isSupportedDeviceExt("VK_KHR_draw_indirect_count", apiVersion))
+                               continue;
+
+                       if (funcType == FUNCTIONORIGIN_PLATFORM)
                        {
-                               checkInstanceFunction(ctx, log, testsArr[ndx].first, DE_TRUE, failsQuantity);
-                               checkDeviceFunction(ctx, log, testsArr[ndx].first, DE_FALSE, failsQuantity);
+                               checkPlatformFunction(ctx, log, funcName, DE_TRUE, failsQuantity);
                        }
-                       else if (functionType == FUNCTIONORIGIN_DEVICE)
+                       else if (funcType == FUNCTIONORIGIN_INSTANCE)
                        {
-                               checkInstanceFunction(ctx, log, testsArr[ndx].first, DE_TRUE, failsQuantity);
-                               checkDeviceFunction(ctx, log, testsArr[ndx].first, DE_TRUE, failsQuantity);
+                               checkInstanceFunction(ctx, log, funcName, DE_TRUE, failsQuantity);
+                               checkDeviceFunction(ctx, log, funcName, DE_FALSE, failsQuantity);
+                       }
+                       else if (funcType == FUNCTIONORIGIN_DEVICE)
+                       {
+                               checkInstanceFunction(ctx, log, funcName, DE_TRUE, failsQuantity);
+                               checkDeviceFunction(ctx, log, funcName, DE_TRUE, failsQuantity);
                        }
                }
+
                return startingQuantity == failsQuantity;
        }
 };
index 099a964..751474c 100644 (file)
@@ -3114,7 +3114,7 @@ tcu::TestStatus ConcurrentComputeInstance::iterate (void)
        // Create an input/output buffers
        const VkPhysicalDeviceMemoryProperties memoryProperties = vk::getPhysicalDeviceMemoryProperties(instance, physicalDevice);
 
-       SimpleAllocator *allocator                                                              = new SimpleAllocator(vk, *logicalDevice, memoryProperties);
+       de::MovePtr<SimpleAllocator> allocator                                  = de::MovePtr<SimpleAllocator>(new SimpleAllocator(vk, *logicalDevice, memoryProperties));
        const VkDeviceSize bufferSizeBytes                                              = sizeof(deUint32) * numValues;
        const Buffer buffer1(vk, *logicalDevice, *allocator, makeBufferCreateInfo(bufferSizeBytes, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), MemoryRequirement::HostVisible);
        const Buffer buffer2(vk, *logicalDevice, *allocator, makeBufferCreateInfo(bufferSizeBytes, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), MemoryRequirement::HostVisible);
index b3a38c3..07a8575 100644 (file)
@@ -165,9 +165,9 @@ tcu::TestStatus ConcurrentDraw::iterate (void)
        // Create an input/output buffer
        const VkPhysicalDeviceMemoryProperties memoryProperties = getPhysicalDeviceMemoryProperties(instance, physicalDevice);
 
-       SimpleAllocator *                       allocator                       = new SimpleAllocator(vk, *computeDevice, memoryProperties);
-       const VkDeviceSize                      bufferSizeBytes         = sizeof(deUint32) * numValues;
-       const vkt::compute::Buffer      buffer(vk, *computeDevice, *allocator, makeBufferCreateInfo(bufferSizeBytes, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), MemoryRequirement::HostVisible);
+       de::MovePtr<SimpleAllocator> allocator                  = de::MovePtr<SimpleAllocator>(new SimpleAllocator(vk, *computeDevice, memoryProperties));
+       const VkDeviceSize                       bufferSizeBytes        = sizeof(deUint32) * numValues;
+       const vkt::compute::Buffer       buffer(vk, *computeDevice, *allocator, makeBufferCreateInfo(bufferSizeBytes, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), MemoryRequirement::HostVisible);
 
        // Fill the buffer with data
 
index bca8775..d9245de 100644 (file)
@@ -861,6 +861,7 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                fillPtr = (deUint8 *)srFillBuffer->getAllocation().getHostPtr();
        }
 
+       const auto cbFormat = VK_FORMAT_R32G32B32A32_UINT;
        de::MovePtr<ImageWithMemory> cbImage;
        Move<VkImageView> cbImageView;
        {
@@ -870,7 +871,7 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                        DE_NULL,                                                                // const void*                          pNext;
                        (VkImageCreateFlags)0u,                                 // VkImageCreateFlags           flags;
                        VK_IMAGE_TYPE_2D,                                               // VkImageType                          imageType;
-                       VK_FORMAT_R32G32B32A32_UINT,                    // VkFormat                                     format;
+                       cbFormat,                                                               // VkFormat                                     format;
                        {
                                m_data.framebufferDim.width,            // deUint32     width;
                                m_data.framebufferDim.height,           // deUint32     height;
@@ -896,7 +897,7 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                        (VkImageViewCreateFlags)0u,                                     // VkImageViewCreateFlags       flags;
                        **cbImage,                                                                      // VkImage                                      image;
                        VK_IMAGE_VIEW_TYPE_2D_ARRAY,                            // VkImageViewType                      viewType;
-                       VK_FORMAT_R32G32B32A32_UINT,                            // VkFormat                                     format;
+                       cbFormat,                                                                       // VkFormat                                     format;
                        {
                                VK_COMPONENT_SWIZZLE_R,                                 // VkComponentSwizzle   r;
                                VK_COMPONENT_SWIZZLE_G,                                 // VkComponentSwizzle   g;
@@ -914,6 +915,7 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                cbImageView = createImageView(vk, device, &imageViewCreateInfo, NULL);
        }
 
+       const auto dsFormat = VK_FORMAT_D32_SFLOAT_S8_UINT;
        de::MovePtr<ImageWithMemory> dsImage;
        Move<VkImageView> dsImageView, dImageView, sImageView;
        VkImageUsageFlags dsUsage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
@@ -928,7 +930,7 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                        DE_NULL,                                                                // const void*                          pNext;
                        (VkImageCreateFlags)0u,                                 // VkImageCreateFlags           flags;
                        VK_IMAGE_TYPE_2D,                                               // VkImageType                          imageType;
-                       VK_FORMAT_D32_SFLOAT_S8_UINT,                   // VkFormat                                     format;
+                       dsFormat,                                                               // VkFormat                                     format;
                        {
                                m_data.framebufferDim.width,            // deUint32     width;
                                m_data.framebufferDim.height,           // deUint32     height;
@@ -954,7 +956,7 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                        (VkImageViewCreateFlags)0u,                                     // VkImageViewCreateFlags       flags;
                        **dsImage,                                                                      // VkImage                                      image;
                        VK_IMAGE_VIEW_TYPE_2D_ARRAY,                            // VkImageViewType                      viewType;
-                       VK_FORMAT_D32_SFLOAT_S8_UINT,                           // VkFormat                                     format;
+                       dsFormat,                                                                       // VkFormat                                     format;
                        {
                                VK_COMPONENT_SWIZZLE_R,                                 // VkComponentSwizzle   r;
                                VK_COMPONENT_SWIZZLE_G,                                 // VkComponentSwizzle   g;
@@ -1467,7 +1469,7 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                                        VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,     // VkStructureType sType;
                                        DE_NULL,                                                                        // const void* pNext;
                                        (VkAttachmentDescriptionFlags)0u,                       // VkAttachmentDescriptionFlags         flags;
-                                       VK_FORMAT_R32G32B32A32_UINT,                            // VkFormat                                                     format;
+                                       cbFormat,                                                                       // VkFormat                                                     format;
                                        m_data.samples,                                                         // VkSampleCountFlagBits                        samples;
                                        VK_ATTACHMENT_LOAD_OP_LOAD,                                     // VkAttachmentLoadOp                           loadOp;
                                        VK_ATTACHMENT_STORE_OP_STORE,                           // VkAttachmentStoreOp                          storeOp;
@@ -1500,7 +1502,7 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                                        VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,     // VkStructureType sType;
                                        DE_NULL,                                                                        // const void* pNext;
                                        (VkAttachmentDescriptionFlags)0u,                       // VkAttachmentDescriptionFlags         flags;
-                                       VK_FORMAT_D32_SFLOAT_S8_UINT,                           // VkFormat                                                     format;
+                                       dsFormat,                                                                       // VkFormat                                                     format;
                                        m_data.samples,                                                         // VkSampleCountFlagBits                        samples;
                                        VK_ATTACHMENT_LOAD_OP_LOAD,                                     // VkAttachmentLoadOp                           loadOp;
                                        VK_ATTACHMENT_STORE_OP_STORE,                           // VkAttachmentStoreOp                          storeOp;
@@ -1538,8 +1540,8 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                                        m_data.framebufferDim.width,                                                            //  deUint32                    width;
                                        m_data.framebufferDim.height,                                                           //  deUint32                    height;
                                        m_data.numColorLayers,                                                                          //  deUint32                    layerCount;
-                                       0u,                                                                                                                     //  deUint32                    viewFormatCount;
-                                       DE_NULL                                                                                                         //  const VkFormat*             pViewFormats;
+                                       1u,                                                                                                                     //  deUint32                    viewFormatCount;
+                                       &cbFormat,                                                                                                      //  const VkFormat*             pViewFormats;
                                }
                        );
                        if (m_data.useAttachment())
@@ -1552,8 +1554,8 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                                        srWidth,                                                                                                        //  deUint32                    width;
                                        srHeight,                                                                                                       //  deUint32                    height;
                                        numSRLayers,                                                                                            //  deUint32                    layerCount;
-                                       0u,                                                                                                                     //  deUint32                    viewFormatCount;
-                                       DE_NULL                                                                                                         //  const VkFormat*             pViewFormats;
+                                       1u,                                                                                                                     //  deUint32                    viewFormatCount;
+                                       &srFormat,                                                                                                      //  const VkFormat*             pViewFormats;
                                }
                                );
 
@@ -1567,8 +1569,8 @@ tcu::TestStatus FSRTestInstance::iterate (void)
                                        m_data.framebufferDim.width,                                                            //  deUint32                    width;
                                        m_data.framebufferDim.height,                                                           //  deUint32                    height;
                                        m_data.numColorLayers,                                                                          //  deUint32                    layerCount;
-                                       0u,                                                                                                                     //  deUint32                    viewFormatCount;
-                                       DE_NULL                                                                                                         //  const VkFormat*             pViewFormats;
+                                       1u,                                                                                                                     //  deUint32                    viewFormatCount;
+                                       &dsFormat,                                                                                                      //  const VkFormat*             pViewFormats;
                                }
                                );
 
index 2367137..7496f6c 100644 (file)
@@ -3189,7 +3189,9 @@ tcu::TestCaseGroup* createImageCompressionTranscodingTests (tcu::TestContext& te
                                        if (shaderType != SHADER_TYPE_COMPUTE && deInRange32(operationNdx, OPERATION_IMAGE_LOAD, OPERATION_IMAGE_STORE))
                                                continue;
 
-                                       if (imageType == IMAGE_TYPE_3D && (operationNdx == OPERATION_ATTACHMENT_READ || operationNdx == OPERATION_ATTACHMENT_WRITE))
+                                       if (imageType == IMAGE_TYPE_3D &&
+                                               (operationNdx == OPERATION_ATTACHMENT_READ || operationNdx == OPERATION_ATTACHMENT_WRITE ||
+                                                operationNdx == OPERATION_TEXTURE_READ))
                                                continue;
 
                                        MovePtr<tcu::TestCaseGroup>     imageOperationGroup     (new tcu::TestCaseGroup(testCtx, operationName[operationNdx].c_str(), ""));
index 7da0318..ad1d3c0 100644 (file)
@@ -262,8 +262,9 @@ protected:
        typedef de::SharedPtr<Unique<VkShaderModule> >  ShaderModuleSP;
 
        virtual tcu::TestStatus                 iterate                                 (void);
-       virtual void                                    beforeDraw                              (void);
-       virtual void                                    afterDraw                               (void);
+       virtual void                                    beforeRenderPass                (void);
+       virtual void                                    afterRenderPass                 (void);
+       virtual void                                    bindResources                   (void) {}
        virtual void                                    draw                                    (const deUint32                 subpassCount,
                                                                                                                         VkRenderPass                   renderPass,
                                                                                                                         VkFramebuffer                  frameBuffer,
@@ -386,7 +387,7 @@ tcu::TestStatus MultiViewRenderTestInstance::iterate (void)
        return tcu::TestStatus::pass("Pass");
 }
 
-void MultiViewRenderTestInstance::beforeDraw (void)
+void MultiViewRenderTestInstance::beforeRenderPass (void)
 {
        const VkImageSubresourceRange   subresourceRange                =
        {
@@ -410,7 +411,7 @@ void MultiViewRenderTestInstance::beforeDraw (void)
                VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT);
 }
 
-void MultiViewRenderTestInstance::afterDraw (void)
+void MultiViewRenderTestInstance::afterRenderPass (void)
 {
        const VkImageSubresourceRange   subresourceRange                =
        {
@@ -448,17 +449,19 @@ void MultiViewRenderTestInstance::draw (const deUint32 subpassCount, VkRenderPas
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
-       m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
-
-       if (m_parameters.viewIndex == TEST_TYPE_DRAW_INDEXED)
-               m_device->cmdBindIndexBuffer(*m_cmdBuffer, *m_vertexIndicesBuffer, 0u, VK_INDEX_TYPE_UINT32);
-
        for (deUint32 subpassNdx = 0u; subpassNdx < subpassCount; subpassNdx++)
        {
+               m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
+
+               if (m_parameters.viewIndex == TEST_TYPE_DRAW_INDEXED)
+                       m_device->cmdBindIndexBuffer(*m_cmdBuffer, *m_vertexIndicesBuffer, 0u, VK_INDEX_TYPE_UINT32);
+
+               bindResources();
+
                m_device->cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **pipelines[subpassNdx]);
 
                for (deUint32 drawNdx = 0u; drawNdx < drawCountPerSubpass; ++drawNdx)
@@ -473,7 +476,7 @@ void MultiViewRenderTestInstance::draw (const deUint32 subpassCount, VkRenderPas
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
@@ -1458,8 +1461,9 @@ class MultiViewAttachmentsTestInstance : public MultiViewRenderTestInstance
 public:
                                                MultiViewAttachmentsTestInstance        (Context& context, const TestParameters& parameters);
 protected:
-       tcu::TestStatus         iterate                                                         (void);
-       void                            beforeDraw                                                      (void);
+       tcu::TestStatus         iterate                                                         (void) override;
+       void                            beforeRenderPass                                        (void) override;
+       void                            bindResources                                           (void) override;
        void                            setImageData                                            (VkImage image);
        de::SharedPtr<ImageAttachment>  m_inputAttachment;
        Move<VkDescriptorPool>                  m_descriptorPool;
@@ -1523,7 +1527,7 @@ tcu::TestStatus MultiViewAttachmentsTestInstance::iterate (void)
        return tcu::TestStatus::pass("Pass");
 }
 
-void MultiViewAttachmentsTestInstance::beforeDraw (void)
+void MultiViewAttachmentsTestInstance::beforeRenderPass (void)
 {
        const VkDescriptorPoolSize poolSize =
        {
@@ -1585,7 +1589,6 @@ void MultiViewAttachmentsTestInstance::beforeDraw (void)
                0u,                                                     //deUint32                              baseArrayLayer;
                m_parameters.extent.depth,      //deUint32                              layerCount;
        };
-       m_device->cmdBindDescriptorSets(*m_cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayout, 0u, 1u, &(*m_descriptorSet), 0u, NULL);
 
        imageBarrier(*m_device, *m_cmdBuffer, m_colorAttachment->getImage(), subresourceRange,
                VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
@@ -1601,6 +1604,11 @@ void MultiViewAttachmentsTestInstance::beforeDraw (void)
                VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT);
 }
 
+void MultiViewAttachmentsTestInstance::bindResources (void)
+{
+       m_device->cmdBindDescriptorSets(*m_cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayout, 0u, 1u, &(*m_descriptorSet), 0u, NULL);
+}
+
 void MultiViewAttachmentsTestInstance::setImageData (VkImage image)
 {
        const MovePtr<tcu::Texture2DArray>              data            = imageData();
@@ -1734,14 +1742,14 @@ void MultiViewInstancedTestInstance::draw (const deUint32 subpassCount, VkRender
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
-       m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
-
        for (deUint32 subpassNdx = 0u; subpassNdx < subpassCount; subpassNdx++)
        {
+               m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
+
                m_device->cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **pipelines[subpassNdx]);
 
                m_device->cmdDraw(*m_cmdBuffer, 4u, drawCountPerSubpass, 0u, subpassNdx % m_squareCount);
@@ -1752,7 +1760,7 @@ void MultiViewInstancedTestInstance::draw (const deUint32 subpassCount, VkRender
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
@@ -1804,14 +1812,14 @@ void MultiViewInputRateInstanceTestInstance::draw (const deUint32 subpassCount,
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
-       m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
-
        for (deUint32 subpassNdx = 0u; subpassNdx < subpassCount; subpassNdx++)
        {
+               m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
+
                m_device->cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **pipelines[subpassNdx]);
 
                for (deUint32 drawNdx = 0u; drawNdx < drawCountPerSubpass; ++drawNdx)
@@ -1823,7 +1831,7 @@ void MultiViewInputRateInstanceTestInstance::draw (const deUint32 subpassCount,
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
@@ -1933,17 +1941,17 @@ void MultiViewDrawIndirectTestInstance::draw (const deUint32 subpassCount, VkRen
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
-       m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
-
-       if (m_parameters.viewIndex == TEST_TYPE_DRAW_INDIRECT_INDEXED)
-               m_device->cmdBindIndexBuffer(*m_cmdBuffer, *m_vertexIndicesBuffer, 0u, VK_INDEX_TYPE_UINT32);
-
        for (deUint32 subpassNdx = 0u; subpassNdx < subpassCount; subpassNdx++)
        {
+               m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
+
+               if (m_parameters.viewIndex == TEST_TYPE_DRAW_INDIRECT_INDEXED)
+                       m_device->cmdBindIndexBuffer(*m_cmdBuffer, *m_vertexIndicesBuffer, 0u, VK_INDEX_TYPE_UINT32);
+
                m_device->cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **pipelines[subpassNdx]);
 
                if (m_hasMultiDrawIndirect)
@@ -1970,7 +1978,7 @@ void MultiViewDrawIndirectTestInstance::draw (const deUint32 subpassCount, VkRen
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
@@ -2013,12 +2021,10 @@ void MultiViewClearAttachmentsTestInstance::draw (const deUint32 subpassCount, V
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
-       m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
-
        for (deUint32 subpassNdx = 0u; subpassNdx < subpassCount; subpassNdx++)
        {
                VkClearAttachment       clearAttachment =
@@ -2054,6 +2060,7 @@ void MultiViewClearAttachmentsTestInstance::draw (const deUint32 subpassCount, V
                };
 
                m_device->cmdClearAttachments(*m_cmdBuffer, 1u, &clearAttachment, 1u, &clearRect);
+               m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
                m_device->cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **pipelines[subpassNdx]);
 
                for (deUint32 drawNdx = 0u; drawNdx < drawCountPerSubpass; ++drawNdx)
@@ -2069,7 +2076,7 @@ void MultiViewClearAttachmentsTestInstance::draw (const deUint32 subpassCount, V
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
@@ -2113,7 +2120,7 @@ void MultiViewSecondaryCommandBufferTestInstance::draw (const deUint32 subpassCo
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, m_parameters.renderPassType);
 
@@ -2148,7 +2155,7 @@ void MultiViewSecondaryCommandBufferTestInstance::draw (const deUint32 subpassCo
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
@@ -2228,14 +2235,14 @@ void MultiViewPointSizeTestInstance::draw (const deUint32 subpassCount, VkRender
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
-       m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
-
        for (deUint32 subpassNdx = 0u; subpassNdx < subpassCount; subpassNdx++)
        {
+               m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
+
                m_device->cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **pipelines[subpassNdx]);
 
                for (deUint32 drawNdx = 0u; drawNdx < drawCountPerSubpass; ++drawNdx)
@@ -2247,7 +2254,7 @@ void MultiViewPointSizeTestInstance::draw (const deUint32 subpassCount, VkRender
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
@@ -2265,7 +2272,7 @@ protected:
                                                                                                         VkRenderPass                   renderPass,
                                                                                                         VkFramebuffer                  frameBuffer,
                                                                                                         vector<PipelineSp>&    pipelines);
-       void                    afterDraw                                               (void);
+       void                    afterRenderPass                                 (void);
 private:
        de::SharedPtr<ImageAttachment>  m_resolveAttachment;
 };
@@ -2382,14 +2389,14 @@ void MultiViewMultsampleTestInstance::draw (const deUint32 subpassCount, VkRende
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
-       m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
-
        for (deUint32 subpassNdx = 0u; subpassNdx < subpassCount; subpassNdx++)
        {
+               m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
+
                m_device->cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **pipelines[subpassNdx]);
 
                for (deUint32 drawNdx = 0u; drawNdx < drawCountPerSubpass; ++drawNdx)
@@ -2401,7 +2408,7 @@ void MultiViewMultsampleTestInstance::draw (const deUint32 subpassCount, VkRende
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        m_device->cmdResolveImage(*m_cmdBuffer, m_colorAttachment->getImage(), VK_IMAGE_LAYOUT_GENERAL, m_resolveAttachment->getImage(), VK_IMAGE_LAYOUT_GENERAL, 1u, &imageResolveRegion);
 
@@ -2409,7 +2416,7 @@ void MultiViewMultsampleTestInstance::draw (const deUint32 subpassCount, VkRende
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
 }
 
-void MultiViewMultsampleTestInstance::afterDraw (void)
+void MultiViewMultsampleTestInstance::afterRenderPass (void)
 {
        const VkImageSubresourceRange   subresourceRange                =
        {
@@ -2653,7 +2660,7 @@ void MultiViewQueriesTestInstance::draw (const deUint32 subpassCount, VkRenderPa
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        // Query pools must be reset before use
        m_device->cmdResetQueryPool(*m_cmdBuffer, *occlusionQueryPool, queryStartIndex, queryCountersNumber);
@@ -2662,8 +2669,6 @@ void MultiViewQueriesTestInstance::draw (const deUint32 subpassCount, VkRenderPa
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
-       m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
-
        m_occlusionExpectedValues.reserve(queryCountersNumber);
        m_counterSeriesStart.reserve(queryCountersNumber);
        m_counterSeriesEnd.reserve(queryCountersNumber);
@@ -2672,6 +2677,7 @@ void MultiViewQueriesTestInstance::draw (const deUint32 subpassCount, VkRenderPa
        {
                deUint32        queryCountersToUse      = getUsedViewsCount(subpassNdx);
 
+               m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
                m_device->cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **pipelines[subpassNdx]);
 
                for (deUint32 drawNdx = 0u; drawNdx < drawCountPerSubpass; ++drawNdx)
@@ -2708,7 +2714,7 @@ void MultiViewQueriesTestInstance::draw (const deUint32 subpassCount, VkRenderPa
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
@@ -2845,7 +2851,7 @@ void MultiViewReadbackTestInstance::drawClears (const deUint32 subpassCount, VkR
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
        if (clearPass)
-               beforeDraw();
+               beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
@@ -2875,7 +2881,7 @@ void MultiViewReadbackTestInstance::drawClears (const deUint32 subpassCount, VkR
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
        if (!clearPass)
-               afterDraw();
+               afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
@@ -2911,8 +2917,8 @@ protected:
                                                                                                                         VkRenderPass                                   renderPass,
                                                                                                                         VkFramebuffer                                  frameBuffer,
                                                                                                                         vector<PipelineSp>&                    pipelines);
-       void                            beforeDraw                                                      (void);
-       void                            afterDraw                                                       (void);
+       void                            beforeRenderPass                                        (void);
+       void                            afterRenderPass                                         (void);
        vector<VkImageView>     makeAttachmentsVector                           (void);
        void                            readImage                                                       (VkImage                                                image,
                                                                                                                         const tcu::PixelBufferAccess&  dst);
@@ -3238,16 +3244,15 @@ void MultiViewDepthStencilTestInstance::draw (const deUint32 subpassCount, VkRen
 
        beginCommandBuffer(*m_device, *m_cmdBuffer);
 
-       beforeDraw();
+       beforeRenderPass();
 
        cmdBeginRenderPass(*m_device, *m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE, m_parameters.renderPassType);
 
-       m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
-
        for (deUint32 subpassNdx = 0u; subpassNdx < subpassCount; subpassNdx++)
        {
                deUint32 firstVertexOffset = (subpassNdx < 4) ? 0u : m_squareCount * vertexPerPrimitive;
 
+               m_device->cmdBindVertexBuffers(*m_cmdBuffer, 0u, DE_LENGTH_OF_ARRAY(vertexBuffers), vertexBuffers, vertexBufferOffsets);
                m_device->cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, **pipelines[subpassNdx]);
 
                for (deUint32 drawNdx = 0u; drawNdx < drawCountPerSubpass; ++drawNdx)
@@ -3259,15 +3264,15 @@ void MultiViewDepthStencilTestInstance::draw (const deUint32 subpassCount, VkRen
 
        cmdEndRenderPass(*m_device, *m_cmdBuffer, m_parameters.renderPassType);
 
-       afterDraw();
+       afterRenderPass();
 
        VK_CHECK(m_device->endCommandBuffer(*m_cmdBuffer));
        submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
 }
 
-void MultiViewDepthStencilTestInstance::beforeDraw (void)
+void MultiViewDepthStencilTestInstance::beforeRenderPass (void)
 {
-       MultiViewRenderTestInstance::beforeDraw();
+       MultiViewRenderTestInstance::beforeRenderPass();
 
        const VkImageSubresourceRange   subresourceRange                =
        {
@@ -3294,9 +3299,9 @@ void MultiViewDepthStencilTestInstance::beforeDraw (void)
                VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT);
 }
 
-void MultiViewDepthStencilTestInstance::afterDraw (void)
+void MultiViewDepthStencilTestInstance::afterRenderPass (void)
 {
-       MultiViewRenderTestInstance::afterDraw();
+       MultiViewRenderTestInstance::afterRenderPass();
 
        const VkImageSubresourceRange   dsSubresourceRange              =
        {
index 4fb0b55..d947b32 100644 (file)
@@ -271,6 +271,7 @@ Move<VkRenderPass> makeRenderPass (const DeviceInterface&           vk,
        const VkAccessFlags                                                     srcAccessMask                           = dsAttacmentAvailable
                                                                                                                                                        ? VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
                                                                                                                                                        : VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
+       const auto                                                                      dependencyFlags                         = (VK_DEPENDENCY_BY_REGION_BIT | VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR);
        vector <SubpassDep>                                                     subpassDependencies;
        for(deUint32 subpassNdx = 0u; subpassNdx < subpassCount; ++subpassNdx)
        {
@@ -284,7 +285,7 @@ Move<VkRenderPass> makeRenderPass (const DeviceInterface&           vk,
                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                  //  VkPipelineStageFlags                        dstStageMask;                           ||      VkPipelineStageFlags                            dstStageMask;
                        srcAccessMask,                                                                                                  //  VkAccessFlags                                       srcAccessMask;                          ||      VkAccessFlags                                           srcAccessMask;
                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                                    //  VkAccessFlags                                       dstAccessMask;                          ||      VkAccessFlags                                           dstAccessMask;
-                       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,                                                               //  VkDependencyFlags                           dependencyFlags;                        ||      VkDependencyFlags                                       dependencyFlags;
+                       dependencyFlags,                                                                                                //  VkDependencyFlags                           dependencyFlags;                        ||      VkDependencyFlags                                       dependencyFlags;
                        0                                                                                                                               //                                                                                                                              ||      deInt32                                                         viewOffset;
                );
                subpassDependencies.push_back(subpassDependency);
@@ -466,6 +467,7 @@ Move<VkRenderPass> makeRenderPassWithAttachments (const DeviceInterface&    vk,
        const VkRenderPassMultiviewCreateInfo*          renderPassMultiviewInfoPtr      = typeid(RenderPassCreateInfo) == typeid(RenderPassCreateInfo1)
                                                                                                                                                        ? &renderPassMultiviewInfo
                                                                                                                                                        : DE_NULL;
+       const auto                                                                      dependencyFlags                         = (VK_DEPENDENCY_BY_REGION_BIT | VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR);
 
        vector <SubpassDep>                                                     subpassDependencies;
        for(deUint32 subpassNdx = 0u; subpassNdx < subpassCount; ++subpassNdx)
@@ -480,7 +482,7 @@ Move<VkRenderPass> makeRenderPassWithAttachments (const DeviceInterface&    vk,
                        VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                  //  VkPipelineStageFlags                        dstStageMask;                           ||      VkPipelineStageFlags                            dstStageMask;
                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,                                                   //  VkAccessFlags                                       srcAccessMask;                          ||      VkAccessFlags                                           srcAccessMask;
                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,                                                    //  VkAccessFlags                                       dstAccessMask;                          ||      VkAccessFlags                                           dstAccessMask;
-                       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,                                                               //  VkDependencyFlags                           dependencyFlags;                        ||      VkDependencyFlags                                       dependencyFlags;
+                       dependencyFlags,                                                                                                //  VkDependencyFlags                           dependencyFlags;                        ||      VkDependencyFlags                                       dependencyFlags;
                        0                                                                                                                               //                                                                                                                              ||      deInt32                                                         viewOffset;
                );
                subpassDependencies.push_back(subpassDependency);
index d5398fb..8fe4ba5 100644 (file)
@@ -447,6 +447,11 @@ void RobustnessExtsTestCase::checkSupport(Context& context) const
        if (m_data.nullDescriptor && !robustness2Features.nullDescriptor)
                TCU_THROW(NotSupportedError, "nullDescriptor not supported");
 
+       // The fill shader for 64-bit multisample image tests uses a storage image.
+       if (m_data.samples > VK_SAMPLE_COUNT_1_BIT && formatIsR64(m_data.format) &&
+               !features2.features.shaderStorageImageMultisample)
+               TCU_THROW(NotSupportedError, "shaderStorageImageMultisample not supported");
+
        if ((m_data.descriptorType == VK_DESCRIPTOR_TYPE_STORAGE_IMAGE) &&
                m_data.samples != VK_SAMPLE_COUNT_1_BIT &&
                !features2.features.shaderStorageImageMultisample)
@@ -1825,9 +1830,13 @@ tcu::TestStatus RobustnessExtsTestInstance::iterate (void)
 
        vector<BufferViewHandleSp>                                      bufferViews(1);
 
-       VkImageCreateFlags imageCreateFlags = 0;
+       VkImageCreateFlags mutableFormatFlag = 0;
+       // The 64-bit image tests use a view format which differs from the image.
+       if (formatIsR64(m_data.format))
+               mutableFormatFlag = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT;
+       VkImageCreateFlags imageCreateFlags = mutableFormatFlag;
        if (m_data.viewType == VK_IMAGE_VIEW_TYPE_CUBE || m_data.viewType == VK_IMAGE_VIEW_TYPE_CUBE_ARRAY)
-               imageCreateFlags = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
+               imageCreateFlags |= VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
 
        const bool featureSampledImage = ((getPhysicalDeviceFormatProperties(m_context.getInstanceInterface(),
                                                                                m_context.getPhysicalDevice(),
@@ -1840,7 +1849,7 @@ tcu::TestStatus RobustnessExtsTestInstance::iterate (void)
        {
                VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,    // VkStructureType                      sType;
                DE_NULL,                                                                // const void*                          pNext;
-               (VkImageCreateFlags)0u,                                 // VkImageCreateFlags           flags;
+               mutableFormatFlag,                                              // VkImageCreateFlags           flags;
                VK_IMAGE_TYPE_2D,                                               // VkImageType                          imageType;
                m_data.format,                                                  // VkFormat                                     format;
                {
index f577c66..148bb17 100644 (file)
@@ -46,6 +46,7 @@
 #include <iomanip>
 #include <string>
 #include <limits>
+#include <cassert>
 
 namespace vkt
 {
@@ -541,71 +542,40 @@ tcu::TestStatus FConvertTestInstance::iterate (void)
        BufferSizeInfo                  outputBufferSizeInfo;
        std::vector<deUint8>    inputMemory;
 
-       // Calculate buffer sizes and convert input values to a packed input memory format, depending on the input and output types.
-       switch (m_params.from)
+       assert(m_params.from == FLOAT_TYPE_16_BITS || m_params.from == FLOAT_TYPE_32_BITS || m_params.from == FLOAT_TYPE_64_BITS);
+
+       if (m_params.from == FLOAT_TYPE_16_BITS)
+       {
+               auto& inputValues = InputGenerator::getInstance().getInputValues16();
+               inputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float16>(inputValues.size(), m_params.vectorLength);
+               inputMemory = packFloats(inputValues, m_params.vectorLength);
+       }
+       else if (m_params.from == FLOAT_TYPE_32_BITS)
+       {
+               auto& inputValues = InputGenerator::getInstance().getInputValues32();
+               inputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float32>(inputValues.size(), m_params.vectorLength);
+               inputMemory = packFloats(inputValues, m_params.vectorLength);
+       }
+       else
+       {
+               auto& inputValues = InputGenerator::getInstance().getInputValues64();
+               inputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float64>(inputValues.size(), m_params.vectorLength);
+               inputMemory = packFloats(inputValues, m_params.vectorLength);
+       }
+
+       switch (m_params.to)
        {
        case FLOAT_TYPE_16_BITS:
-               {
-                       auto& inputValues = InputGenerator::getInstance().getInputValues16();
-                       inputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float16>(inputValues.size(), m_params.vectorLength);
-                       switch (m_params.to)
-                       {
-                       case FLOAT_TYPE_32_BITS:
-                               outputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float32>(inputValues.size(), m_params.vectorLength);
-                               break;
-                       case FLOAT_TYPE_64_BITS:
-                               outputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float64>(inputValues.size(), m_params.vectorLength);
-                               break;
-                       default:
-                               DE_ASSERT(false);
-                               break;
-                       }
-                       inputMemory = packFloats(inputValues, m_params.vectorLength);
-               }
+               outputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float16>(inputBufferSizeInfo.numValues, m_params.vectorLength);
                break;
-
        case FLOAT_TYPE_32_BITS:
-               {
-                       auto& inputValues = InputGenerator::getInstance().getInputValues32();
-                       inputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float32>(inputValues.size(), m_params.vectorLength);
-                       switch (m_params.to)
-                       {
-                       case FLOAT_TYPE_16_BITS:
-                               outputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float16>(inputValues.size(), m_params.vectorLength);
-                               break;
-                       case FLOAT_TYPE_64_BITS:
-                               outputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float64>(inputValues.size(), m_params.vectorLength);
-                               break;
-                       default:
-                               DE_ASSERT(false);
-                               break;
-                       }
-                       inputMemory = packFloats(inputValues, m_params.vectorLength);
-               }
+               outputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float32>(inputBufferSizeInfo.numValues, m_params.vectorLength);
                break;
-
        case FLOAT_TYPE_64_BITS:
-               {
-                       auto& inputValues = InputGenerator::getInstance().getInputValues64();
-                       inputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float64>(inputValues.size(), m_params.vectorLength);
-                       switch (m_params.to)
-                       {
-                       case FLOAT_TYPE_16_BITS:
-                               outputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float16>(inputValues.size(), m_params.vectorLength);
-                               break;
-                       case FLOAT_TYPE_32_BITS:
-                               outputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float32>(inputValues.size(), m_params.vectorLength);
-                               break;
-                       default:
-                               DE_ASSERT(false);
-                               break;
-                       }
-                       inputMemory = packFloats(inputValues, m_params.vectorLength);
-               }
+               outputBufferSizeInfo = BufferSizeInfo::calculate<tcu::Float64>(inputBufferSizeInfo.numValues, m_params.vectorLength);
                break;
-
        default:
-               DE_ASSERT(false);
+               assert(false);
                break;
        }
 
index 1660d28..9af9f52 100644 (file)
@@ -25202,186 +25202,6 @@ dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_unorm_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_uint
 dEQP-VK.image.texel_view_compatible.graphic.basic.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc4_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_unorm
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_snorm
 dEQP-VK.image.texel_view_compatible.graphic.basic.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_uscaled
@@ -27002,186 +26822,6 @@ dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_unorm_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_uint
 dEQP-VK.image.texel_view_compatible.graphic.extended.2d_image.texture_write.astc_12x12_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgb_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc1_rgba_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc4_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a1_srgb_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_unorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_unorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_snorm
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sscaled
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r16g16b16a16_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r32g32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11_snorm_block.r32g32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc2_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc3_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc5_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_ufloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc6h_sfloat_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.bc7_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.etc2_r8g8b8a8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.eac_r11g11_snorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_4x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x4_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_5x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_6x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_8x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x5_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x6_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x8_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_10x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x10_srgb_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_unorm_block.r32g32b32a32_sint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_uint
-dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_read.astc_12x12_srgb_block.r32g32b32a32_sint
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_unorm
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_snorm
 dEQP-VK.image.texel_view_compatible.graphic.extended.3d_image.texture_write.bc1_rgb_unorm_block.r16g16b16a16_uscaled
index 039edf0..9a8fb4c 100644 (file)
@@ -232,6 +232,16 @@ static string stringJoin (const vector<string>& elems, const string& delim)
        return result;
 }
 
+static void stringReplace (string& str, const string& from, const string& to)
+{
+    size_t     start_pos       = 0;
+    while ((start_pos = str.find(from, start_pos)) != std::string::npos)
+       {
+        str.replace(start_pos, from.length(), to);
+        start_pos += to.length();
+    }
+}
+
 static string twoValuedVec4 (const string& first, const string& second, const BVec4& firstMask)
 {
        vector<string> elems(4);
@@ -318,7 +328,7 @@ static inline bool isBoolType (ValueType type)
        return (type & (VALUE_BOOL | VALUE_BOOL_VEC | VALUE_BOOL_GENTYPE)) != 0;
 }
 
-static inline float getGLSLUintMaxAsFloat (const glw::Functions& gl, ShaderType shaderType, Precision uintPrecision)
+static inline int getGLSLUintBits (const glw::Functions& gl, ShaderType shaderType, Precision uintPrecision)
 {
        deUint32 intPrecisionGL;
        deUint32 shaderTypeGL;
@@ -350,8 +360,18 @@ static inline float getGLSLUintMaxAsFloat (const glw::Functions& gl, ShaderType
 
        TCU_CHECK(de::inBounds(range[0], 8, 32));
 
-       const int numBitsInType = range[0] + 1;
-       return (float)((1ull << numBitsInType) - 1);
+       const int       numBitsInType                   = range[0] + 1;
+       return numBitsInType;
+}
+
+static inline float getGLSLUintMaxAsFloat (const glw::Functions& gl, ShaderType shaderType, Precision uintPrecision)
+{
+       const int       numBitsInType                   = getGLSLUintBits(gl, shaderType, uintPrecision);
+       const float     maxAsFloat                              = static_cast<float>((1ull << numBitsInType) - 1);
+       const float     maxRepresentableAsFloat = floorf(nextafterf(maxAsFloat, 0));
+
+       // Not accurate for integers wider than 24 bits.
+       return numBitsInType > 24 ? maxRepresentableAsFloat : maxAsFloat;
 }
 
 // Float scalar that can be either constant or a symbol that can be evaluated later.
@@ -399,6 +419,36 @@ public:
                }
        }
 
+       deUint32 getValueMask (const glw::Functions& gl, ShaderType shaderType) const
+       {
+               if (m_isConstant)
+                       return 0;
+
+               int bits = 0;
+               switch (m_value.symbol)
+               {
+                       case SYMBOL_LOWP_UINT_MAX_RECIPROCAL:
+                       case SYMBOL_LOWP_UINT_MAX:
+                               bits = getGLSLUintBits(gl, shaderType, PRECISION_LOWP);
+                               break;
+
+                       case SYMBOL_MEDIUMP_UINT_MAX_RECIPROCAL:
+                       case SYMBOL_MEDIUMP_UINT_MAX:
+                               bits = getGLSLUintBits(gl, shaderType, PRECISION_MEDIUMP);
+                               break;
+
+                       case SYMBOL_ONE_MINUS_UINT32MAX_DIV_LOWP_UINT_MAX:
+                       case SYMBOL_ONE_MINUS_UINT32MAX_DIV_MEDIUMP_UINT_MAX:
+                               return 0;
+
+                       default:
+                               DE_ASSERT(false);
+                               return 0;
+               }
+
+               return bits == 32 ? 0 : (1u << bits) - 1;
+       }
+
 private:
        bool m_isConstant;
 
@@ -745,22 +795,45 @@ void ShaderOperatorCase::setupShaderData (void)
        frag << "void main()\n";
        frag << "{\n";
 
+       bool    isResFloatVec   = de::inRange<int>(m_spec.output, TYPE_FLOAT, TYPE_FLOAT_VEC4);
+       bool    isResBoolVec    = de::inRange<int>(m_spec.output, TYPE_BOOL, TYPE_BOOL_VEC4);
+       bool    hasReference    = !isResFloatVec && !isResBoolVec && (m_spec.precision == PRECISION_LOWP || m_spec.precision == PRECISION_MEDIUMP);
+       string  refShaderOp             = m_shaderOp;
+
        // Expression inputs.
        string prefix = m_isVertexCase ? "a_" : "v_";
        for (int i = 0; i < m_spec.numInputs; i++)
        {
-               DataType                inType          = m_spec.inputs[i].type;
-               int                             inSize          = getDataTypeScalarSize(inType);
-               bool                    isInt           = de::inRange<int>(inType, TYPE_INT, TYPE_INT_VEC4);
-               bool                    isUint          = de::inRange<int>(inType, TYPE_UINT, TYPE_UINT_VEC4);
-               bool                    isBool          = de::inRange<int>(inType, TYPE_BOOL, TYPE_BOOL_VEC4);
-               const char*             typeName        = getDataTypeName(inType);
-               const char*             swizzle         = s_inSwizzles[i][inSize-1];
-
+               DataType                inType                  = m_spec.inputs[i].type;
+               int                             inSize                  = getDataTypeScalarSize(inType);
+               bool                    isBool                  = de::inRange<int>(inType, TYPE_BOOL, TYPE_BOOL_VEC4);
+               bool                    isInt                   = de::inRange<int>(inType, TYPE_INT, TYPE_INT_VEC4);
+               bool                    isUint                  = de::inRange<int>(inType, TYPE_UINT, TYPE_UINT_VEC4);
+               const char*             typeName                = getDataTypeName(inType);
+               const char*             swizzle                 = s_inSwizzles[i][inSize-1];
+               bool                    hasReferenceIn  = hasReference && !isBool;
+
+               // For int/uint types, generate:
+               //
+               //     highp type highp_inN = ...;
+               //     precision type inN = highp_inN;
+               //
+               // inN_high will be used later for reference checking.
+               //
+               // For other types, generate:
+               //
+               //     precision type inN = ...;
+               //
                op << "\t";
-               if (precision && !isBool) op << precision << " ";
+               if (precision && !isBool)
+               {
+                       if (hasReferenceIn)     op << "highp ";
+                       else                            op << precision << " ";
+               }
 
-               op << typeName << " in" << i << " = ";
+               op << typeName << " ";
+               if (hasReferenceIn)     op << "highp_";
+               op << "in" << i << " = ";
 
                if (isBool)
                {
@@ -781,6 +854,14 @@ void ShaderOperatorCase::setupShaderData (void)
                        op << ")";
 
                op << ";\n";
+
+               if (hasReferenceIn)
+               {
+                       op << "\t" << precision << " " << typeName << " in" << i << " = highp_in" << i << ";\n";
+
+                       string inputName = "in" + string(1, static_cast<char>('0' + i));
+                       stringReplace(refShaderOp, inputName, "highp_" + inputName);
+               }
        }
 
        // Result variable.
@@ -790,27 +871,112 @@ void ShaderOperatorCase::setupShaderData (void)
 
                op << "\t";
                if (precision && !isBoolOut) op << precision << " ";
-               op << outTypeName << " res = " << outTypeName << "(0.0);\n\n";
+               op << outTypeName << " res = " << outTypeName << "(0.0);\n";
+
+               if (hasReference)
+               {
+                       op << "\thighp " << outTypeName << " ref = " << outTypeName << "(0.0);\n";
+               }
+
+               op << "\n";
        }
 
        // Expression.
-       op << "\t" << m_shaderOp << "\n\n";
-
-       // Convert to color.
-       bool    isResFloatVec   = de::inRange<int>(m_spec.output, TYPE_FLOAT, TYPE_FLOAT_VEC4);
+       op << "\t" << m_shaderOp << "\n";
+       if (hasReference)
+       {
+               stringReplace(refShaderOp, "res", "ref");
+               op << "\t" << refShaderOp << "\n";
+       }
+       op << "\n";
+
+       // Implementations may use more bits than advertised.  Assume an implementation advertising 16
+       // bits for mediump, but actually using 24 bits for a particular operation.  We have:
+       //
+       //     highp ref = expr;
+       //     mediump res = expr;
+       //
+       // We expect res&0xFFFF to be correct, because that ensures that _at least_ 16 bits were
+       // provided.  However, we also need to make sure that if there is anything in the upper 16 bits
+       // of res, that those bits match with ref.  In short, we expect to see the following bits
+       // (assume the advertised number of bits is N, and the actual calculation is done in M bits):
+       //
+       //     ref = a31 ... aM aM-1 ... aN aN-1 ... a0
+       //     res =   0 ...  0 bM-1 ... bN bN-1 ... b0
+       //
+       // The test verifies that bN-1 ... b0 is correct based on the shader output.  We additionally
+       // want to make sure that:
+       //
+       //  - bM-1 ... bN is identical to aM-1 ... aN
+       //  - bits above bM-1 are zero.
+       //
+       // This is done as follows:
+       //
+       //     diff = res ^ ref  --> should produce a31 ... aM 0 ... 0
+       //     diff == 0: accept res
+       //     diff != 0:
+       //         lsb = log2((~diff + 1u) & diff)  --> log2(0 .. 0 1 0 ...0)
+       //                                              == findLSB(diff)
+       //
+       //         outOfRangeMask = 0xFFFFFFFF << lsb  --> 1 ... 1 0 ... 0
+       //
+       //         (res & outOfRangeMask) == 0: accept res
+       //
+       // Note that (diff & ~outOfRangeMask) == 0 necessarily holds, because outOfRangeMask has 1s
+       // starting from the first bit that differs between res and ref, which means that res and ref
+       // are identical in those bits.
        int             outScalarSize   = getDataTypeScalarSize(m_spec.output);
+       string floatType = "";
+       if (!isResFloatVec)
+       {
+               if (outScalarSize == 1)
+                       floatType = "float";
+               else
+                       floatType = "vec" + string(1, static_cast<char>('0' + outScalarSize));
+       }
 
-       op << "\thighp vec4 color = vec4(0.0, 0.0, 0.0, 1.0);\n";
-       op << "\tcolor." << s_outSwizzles[outScalarSize-1] << " = ";
+       if (hasReference)
+       {
+               bool    isInt   = de::inRange<int>(m_spec.output, TYPE_INT, TYPE_INT_VEC4);
+               const char* outTypeName = getDataTypeName(m_spec.output);
+               const char* outBasicTypeName = getDataTypeName(isInt ? TYPE_INT : TYPE_UINT);
+               deUint32        resultMask      = m_spec.resultScale.getValueMask(m_renderCtx.getFunctions(), shaderType);
+
+               op << "\thighp " << outTypeName << " diff = res ^ ref;\n";
+               op << "\tdiff = (~diff + " << outTypeName << "(1)) & diff;\n";
+               op << "\thighp " << outTypeName << " lsb = " << outTypeName << "(32);\n";
+               op << "\thighp " << outTypeName << " outOfRangeMask = " << outTypeName << "(0);\n";
+               if (outScalarSize == 1)
+               {
+                       op << "\tif (diff != " << outTypeName << "(0))\n\t{\n";
+                       op << "\t\tlsb = " << outTypeName << "(log2(" << floatType << "(diff)));\n";
+                       op << "\t\toutOfRangeMask = " << outTypeName << "(0xFFFFFFFF) << lsb;\n";
+                       op << "\t}\n";
+               }
+               else
+               {
+                       op << "\tbvec" << outScalarSize << " isDiffZero = equal(diff, " << outTypeName << "(0));\n";
+                       op << "\thighp " << outTypeName << " lsbUnsantized = " << outTypeName << "(log2(vec" << outScalarSize << "((~diff + " << outTypeName << "(1)) & diff)));\n";
+                       for (int channel = 0; channel < outScalarSize; ++channel)
+                       {
+                               op << "\tif (!isDiffZero[" << channel << "])\n\t{\n";
+                               op << "\t\tlsb[" << channel << "] = lsbUnsantized[" << channel << "];\n";
+                               op << "\t\toutOfRangeMask[" << channel << "] = " << outBasicTypeName << "(0xFFFFFFFF) << lsb[" << channel << "];\n";
+                               op << "\t}\n";
+                       }
+               }
+               op << "\thighp " << outTypeName << " outOfRangeRes = res & outOfRangeMask;\n";
+               op << "\tif (outOfRangeRes != " << outTypeName << "(0)) res = " << outTypeName << "(0);\n";
 
-       if (!isResFloatVec && outScalarSize == 1)
-               op << "float(res)";
-       else if (!isResFloatVec)
-               op << "vec" << outScalarSize << "(res)";
-       else
-               op << "res";
+               if (resultMask != 0)
+                       op << "\tres &= " << outTypeName << "(" << resultMask << ");\n";
+
+               op << "\n";
+       }
 
-       op << ";\n";
+       // Convert to color.
+       op << "\thighp vec4 color = vec4(0.0, 0.0, 0.0, 1.0);\n";
+       op << "\tcolor." << s_outSwizzles[outScalarSize-1] << " = " << floatType << "(res);\n";
 
        // Scale & bias.
        float   resultScale             = m_spec.resultScale.getValue(m_renderCtx.getFunctions(), shaderType);
@@ -1939,7 +2105,7 @@ void ShaderOperatorTests::init (void)
                                                        string name = precisionPrefix;
 
                                                        // Generate shader op.
-                                                       string shaderOp = string("res = ");
+                                                       string shaderOp = "res = ";
 
                                                        // Setup shader data info.
                                                        shaderSpec.numInputs            = 0;
@@ -2184,7 +2350,7 @@ void ShaderOperatorTests::init (void)
                                        shaderSpec.inputs[inputNdx] = ShaderValue(type, rangeMin, rangeMax);
                                }
 
-                               string expression = string("") + "res = (" + s_sequenceCases[caseNdx].expressionStr + ");";
+                               string expression = string("res = (") + s_sequenceCases[caseNdx].expressionStr + ");";
 
                                TestCaseGroup* group = s_sequenceCases[caseNdx].containsSideEffects ? sequenceSideEffGroup : sequenceNoSideEffGroup;
                                group->addChild(new ShaderOperatorCase(m_context, name.c_str(), "", isVertexCase, s_sequenceCases[caseNdx].evalFunc, expression.c_str(), shaderSpec));
index 264b502..c9f5f39 100644 (file)
@@ -130,6 +130,7 @@ static std::string specializeShader(Context& context, const char* code)
 
        if (glu::contextSupports(context.getRenderContext().getType(), glu::ApiType::es(3, 2)))
        {
+               specializationMap["ARB_ES32_COMPATIBILITY_REQUIRE"] = "";
                specializationMap["GEOMETRY_SHADER_REQUIRE"] = "";
                specializationMap["GEOMETRY_POINT_SIZE"] = "#extension GL_EXT_geometry_point_size : require";
                specializationMap["GPU_SHADER5_REQUIRE"] = "";
@@ -138,8 +139,20 @@ static std::string specializeShader(Context& context, const char* code)
                specializationMap["PRIMITIVE_BOUNDING_BOX_REQUIRE"] = "";
                specializationMap["PRIM_GL_BOUNDING_BOX"] = "gl_BoundingBox";
        }
+       else if (glu::contextSupports(context.getRenderContext().getType(), glu::ApiType::core(4, 5)))
+       {
+               specializationMap["ARB_ES32_COMPATIBILITY_REQUIRE"] = "#extension GL_ARB_ES3_2_compatibility : require";
+               specializationMap["GEOMETRY_SHADER_REQUIRE"] = "";
+               specializationMap["GEOMETRY_POINT_SIZE"] = "";
+               specializationMap["GPU_SHADER5_REQUIRE"] = "";
+               specializationMap["TESSELLATION_SHADER_REQUIRE"] = "";
+               specializationMap["TESSELLATION_POINT_SIZE_REQUIRE"] = "";
+               specializationMap["PRIMITIVE_BOUNDING_BOX_REQUIRE"] = "";
+               specializationMap["PRIM_GL_BOUNDING_BOX"] = "gl_BoundingBox";
+       }
        else
        {
+               specializationMap["ARB_ES32_COMPATIBILITY_REQUIRE"] = "";
                specializationMap["GEOMETRY_SHADER_REQUIRE"] = "#extension GL_EXT_geometry_shader : require";
                specializationMap["GEOMETRY_POINT_SIZE"] = "#extension GL_EXT_geometry_point_size : require";
                specializationMap["GPU_SHADER5_REQUIRE"] = "#extension GL_EXT_gpu_shader5 : require";
@@ -152,6 +165,43 @@ static std::string specializeShader(Context& context, const char* code)
        return tcu::StringTemplate(code).specialize(specializationMap);
 }
 
+static decltype(glw::Functions::primitiveBoundingBox)
+getBoundingBoxFunction(Context& context)
+{
+       decltype(glw::Functions::primitiveBoundingBox) boundingBoxFunc;
+       const glw::Functions& funcs = context.getRenderContext().getFunctions();
+
+       /* OpenGL ES is assumed to have it (extensions checks passed). */
+       if (glu::isContextTypeES(context.getRenderContext().getType()))
+               return funcs.primitiveBoundingBox;
+
+       boundingBoxFunc = (decltype(boundingBoxFunc))
+               context.getRenderContext().getProcAddress("glPrimitiveBoundingBoxARB");
+
+       DE_ASSERT(boundingBoxFunc);
+
+       return boundingBoxFunc;
+}
+
+static bool supportsES32OrGL45(Context& context)
+{
+       return glu::contextSupports(context.getRenderContext().getType(), glu::ApiType::es(3, 2)) ||
+              glu::contextSupports(context.getRenderContext().getType(), glu::ApiType::core(4, 5));
+}
+
+static bool boundingBoxSupported(Context& context)
+{
+   /* Require one of:
+    *    - OpenGL ES 3.2
+    *    - OpenGL 4.5 + GL_ARB_ES3_2_compatibility
+    *    - OpenGL ES 3.1 + GL_EXT_primitive_bounding_box
+    */
+   return glu::contextSupports(context.getRenderContext().getType(), glu::ApiType::es(3, 2)) ||
+         ((glu::contextSupports(context.getRenderContext().getType(), glu::ApiType::core(4, 5)) &&
+          context.getContextInfo().isExtensionSupported("GL_ARB_ES3_2_compatibility")) ||
+         context.getContextInfo().isExtensionSupported("GL_EXT_primitive_bounding_box"));
+}
+
 class InitialValueCase : public TestCase
 {
 public:
@@ -168,9 +218,7 @@ InitialValueCase::InitialValueCase (Context& context, const char* name, const ch
 
 void InitialValueCase::init (void)
 {
-       const bool supportsES32 = glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::es(3, 2));
-
-       if (!supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_primitive_bounding_box"))
+       if (!boundingBoxSupported(m_context))
                throw tcu::NotSupportedError("Test requires GL_EXT_primitive_bounding_box extension");
 }
 
@@ -246,9 +294,7 @@ QueryCase::QueryCase (Context& context, const char* name, const char* desc, Quer
 
 void QueryCase::init (void)
 {
-       const bool supportsES32 = glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::es(3, 2));
-
-       if (!supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_primitive_bounding_box"))
+       if (!boundingBoxSupported(m_context))
                throw tcu::NotSupportedError("Test requires GL_EXT_primitive_bounding_box extension");
 }
 
@@ -284,13 +330,22 @@ QueryCase::IterateResult QueryCase::iterate (void)
        gl.enableLogging(true);
        m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
 
+       auto boundingBoxFunc = getBoundingBoxFunction(m_context);
+
        for (int caseNdx = 0; caseNdx < (int)cases.size(); ++caseNdx)
        {
                const tcu::ScopedLogSection     section         (m_testCtx.getLog(), "Iteration", "Iteration " + de::toString(caseNdx+1));
                const BoundingBox&                      boundingBox     = cases[caseNdx];
 
-               gl.glPrimitiveBoundingBox(boundingBox.min.x(), boundingBox.min.y(), boundingBox.min.z(), boundingBox.min.w(),
-                                                                 boundingBox.max.x(), boundingBox.max.y(), boundingBox.max.z(), boundingBox.max.w());
+               /* On desktop GL, we cannot use call wrapper here but must use resolved extension function. */
+               if (!glu::isContextTypeES(m_context.getRenderContext().getType())) {
+                       boundingBoxFunc(boundingBox.min.x(), boundingBox.min.y(), boundingBox.min.z(), boundingBox.min.w(),
+                                       boundingBox.max.x(), boundingBox.max.y(), boundingBox.max.z(), boundingBox.max.w());
+               }
+               else {
+                       gl.glPrimitiveBoundingBox(boundingBox.min.x(), boundingBox.min.y(), boundingBox.min.z(), boundingBox.min.w(),
+                                                 boundingBox.max.x(), boundingBox.max.y(), boundingBox.max.z(), boundingBox.max.w());
+               }
 
                if (!verifyState(gl, boundingBox))
                        m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Unexpected query result");
@@ -594,6 +649,9 @@ protected:
        de::MovePtr<glu::ShaderProgram> m_program;
        de::MovePtr<glu::Buffer>                m_vbo;
        de::MovePtr<glu::Framebuffer>   m_fbo;
+       glw::GLuint                     m_vao;
+
+       decltype(glw::Functions::primitiveBoundingBox)  m_boundingBoxFunc;
 
 private:
        std::vector<IterationConfig>    m_iterationConfigs;
@@ -609,6 +667,8 @@ BBoxRenderCase::BBoxRenderCase (Context& context, const char* name, const char*
        , m_useGlobalState                      ((flags & FLAG_SET_BBOX_STATE) != 0)
        , m_calcPerPrimitiveBBox        ((flags & FLAG_PER_PRIMITIVE_BBOX) != 0)
        , m_numIterations                       (numIterations)
+       , m_vao                                 (0)
+       , m_boundingBoxFunc                     (NULL)
        , m_iteration                           (0)
 {
        // validate flags
@@ -639,18 +699,18 @@ BBoxRenderCase::~BBoxRenderCase (void)
 
 void BBoxRenderCase::init (void)
 {
-       const glw::Functions&   gl                                      = m_context.getRenderContext().getFunctions();
+       const glw::Functions&           gl                      = m_context.getRenderContext().getFunctions();
        const tcu::IVec2                renderTargetSize        = (m_renderTarget == RENDERTARGET_DEFAULT) ?
                                                                                                        (tcu::IVec2(m_context.getRenderTarget().getWidth(), m_context.getRenderTarget().getHeight())) :
                                                                                                        (tcu::IVec2(FBO_SIZE, FBO_SIZE));
-       const bool                              supportsES32            = glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::es(3, 2));
+       const bool                      hasES32OrGL45           = supportsES32OrGL45(m_context);
 
        // requirements
-       if (!supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_primitive_bounding_box"))
+       if (!boundingBoxSupported(m_context))
                throw tcu::NotSupportedError("Test requires GL_EXT_primitive_bounding_box extension");
-       if (!supportsES32 && m_hasTessellationStage && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_shader"))
+       if (!hasES32OrGL45 && m_hasTessellationStage && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_shader"))
                throw tcu::NotSupportedError("Test requires GL_EXT_tessellation_shader extension");
-       if (!supportsES32 && m_hasGeometryStage && !m_context.getContextInfo().isExtensionSupported("GL_EXT_geometry_shader"))
+       if (!hasES32OrGL45 && m_hasGeometryStage && !m_context.getContextInfo().isExtensionSupported("GL_EXT_geometry_shader"))
                throw tcu::NotSupportedError("Test requires GL_EXT_geometry_shader extension");
        if (m_renderTarget == RENDERTARGET_DEFAULT && (renderTargetSize.x() < RENDER_TARGET_MIN_SIZE || renderTargetSize.y() < RENDER_TARGET_MIN_SIZE))
                throw tcu::NotSupportedError(std::string() + "Test requires " + de::toString<int>(RENDER_TARGET_MIN_SIZE) + "x" + de::toString<int>(RENDER_TARGET_MIN_SIZE) + " default framebuffer");
@@ -717,11 +777,19 @@ void BBoxRenderCase::init (void)
                gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
        }
 
+       m_boundingBoxFunc = getBoundingBoxFunction(m_context);
+
        {
                std::vector<tcu::Vec4> data;
 
                getAttributeData(data);
 
+               // Generate VAO for desktop OpenGL
+               if (!glu::isContextTypeES(m_context.getRenderContext().getType())) {
+                       gl.genVertexArrays(1, &m_vao);
+                       gl.bindVertexArray(m_vao);
+               }
+
                m_vbo = de::MovePtr<glu::Buffer>(new glu::Buffer(m_context.getRenderContext()));
                gl.bindBuffer(GL_ARRAY_BUFFER, **m_vbo);
                gl.bufferData(GL_ARRAY_BUFFER, (int)(data.size() * sizeof(tcu::Vec4)), &data[0], GL_STATIC_DRAW);
@@ -738,6 +806,12 @@ void BBoxRenderCase::deinit (void)
        m_program.clear();
        m_vbo.clear();
        m_fbo.clear();
+
+       if (m_vao)
+       {
+               m_context.getRenderContext().getFunctions().deleteVertexArrays(1, &m_vao);
+               m_vao = 0;
+       }
 }
 
 BBoxRenderCase::IterateResult BBoxRenderCase::iterate (void)
@@ -866,12 +940,11 @@ void BBoxRenderCase::setupRender (const IterationConfig& config)
                        << tcu::TestLog::EndMessage;
 
        if (m_useGlobalState)
-               gl.primitiveBoundingBox(config.bbox.min.x(), config.bbox.min.y(), config.bbox.min.z(), config.bbox.min.w(),
-                                                               config.bbox.max.x(), config.bbox.max.y(), config.bbox.max.z(), config.bbox.max.w());
+               m_boundingBoxFunc(config.bbox.min.x(), config.bbox.min.y(), config.bbox.min.z(), config.bbox.min.w(),
+                                 config.bbox.max.x(), config.bbox.max.y(), config.bbox.max.z(), config.bbox.max.w());
        else
                // state is overriden by the tessellation output, set bbox to invisible area to imitiate dirty state left by application
-               gl.primitiveBoundingBox(-2.0f, -2.0f, 0.0f, 1.0f,
-                                                               -1.7f, -1.7f, 0.0f, 1.0f);
+               m_boundingBoxFunc(-2.0f, -2.0f, 0.0f, 1.0f, -1.7f, -1.7f, 0.0f, 1.0f);
 
        if (m_fbo)
                gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, **m_fbo);
@@ -881,6 +954,7 @@ void BBoxRenderCase::setupRender (const IterationConfig& config)
        gl.clear(GL_COLOR_BUFFER_BIT);
 
        gl.bindBuffer(GL_ARRAY_BUFFER, **m_vbo);
+
        gl.vertexAttribPointer(posLocation, 4, GL_FLOAT, GL_FALSE, (int)(VA_NUM_ATTRIB_VECS * sizeof(float[4])), glu::BufferOffsetAsPointer(4 * VA_POS_VEC_NDX * sizeof(float)));
        gl.vertexAttribPointer(colLocation, 4, GL_FLOAT, GL_FALSE, (int)(VA_NUM_ATTRIB_VECS * sizeof(float[4])), glu::BufferOffsetAsPointer(4 * VA_COL_VEC_NDX * sizeof(float)));
        gl.enableVertexAttribArray(posLocation);
@@ -1072,6 +1146,7 @@ std::string GridRenderCase::genTessellationControlSource (void) const
        std::ostringstream      buf;
 
        buf <<  "${GLSL_VERSION_DECL}\n"
+                       "${ARB_ES32_COMPATIBILITY_REQUIRE}\n"
                        "${TESSELLATION_SHADER_REQUIRE}\n"
                        "${PRIMITIVE_BOUNDING_BOX_REQUIRE}\n"
                        "layout(vertices=3) out;\n"
@@ -1580,6 +1655,7 @@ std::string LineRenderCase::genTessellationControlSource (void) const
        std::ostringstream      buf;
 
        buf <<  "${GLSL_VERSION_DECL}\n"
+                       "${ARB_ES32_COMPATIBILITY_REQUIRE}\n"
                        "${TESSELLATION_SHADER_REQUIRE}\n"
                        "${PRIMITIVE_BOUNDING_BOX_REQUIRE}\n"
                        "layout(vertices=2) out;"
@@ -2432,11 +2508,21 @@ void PointRenderCase::init (void)
 {
        if (m_isWidePointCase)
        {
-               // extensions
-               if (m_hasGeometryStage && !m_context.getContextInfo().isExtensionSupported("GL_EXT_geometry_point_size"))
-                       throw tcu::NotSupportedError("Test requires GL_EXT_geometry_point_size extension");
-               if (m_hasTessellationStage && !m_hasGeometryStage && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_point_size"))
-                       throw tcu::NotSupportedError("Test requires GL_EXT_tessellation_point_size extension");
+               const bool supportsGL45 = glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::core(4, 5));
+
+               if (!supportsGL45) {
+                       // extensions
+                       if (m_hasGeometryStage && !m_context.getContextInfo().isExtensionSupported("GL_EXT_geometry_point_size"))
+                               throw tcu::NotSupportedError("Test requires GL_EXT_geometry_point_size extension");
+                       if (m_hasTessellationStage && !m_hasGeometryStage && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_point_size"))
+                               throw tcu::NotSupportedError("Test requires GL_EXT_tessellation_point_size extension");
+               }
+
+               // Enable program point size for desktop GL
+               if (supportsGL45) {
+                       const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+                       gl.enable(GL_PROGRAM_POINT_SIZE);
+               }
 
                // point size range
                {
@@ -2550,6 +2636,7 @@ std::string PointRenderCase::genTessellationControlSource (void) const
        std::ostringstream      buf;
 
        buf <<  "${GLSL_VERSION_DECL}\n"
+                       "${ARB_ES32_COMPATIBILITY_REQUIRE}\n"
                        "${TESSELLATION_SHADER_REQUIRE}\n"
                        "${PRIMITIVE_BOUNDING_BOX_REQUIRE}\n"
                <<      ((tessellationWidePoints) ? ("${TESSELLATION_POINT_SIZE_REQUIRE}\n") : (""))
@@ -3334,7 +3421,8 @@ private:
        de::MovePtr<glu::Renderbuffer>  m_srcRbo;
        de::MovePtr<glu::Renderbuffer>  m_dstRbo;
        de::MovePtr<glu::ShaderProgram> m_program;
-       de::MovePtr<glu::Buffer>                m_vbo;
+       de::MovePtr<glu::Buffer>        m_vbo;
+       glw::GLuint                     m_vao;
 };
 
 BlitFboCase::BlitFboCase (Context& context, const char* name, const char* description, RenderTarget src, RenderTarget dst)
@@ -3342,6 +3430,7 @@ BlitFboCase::BlitFboCase (Context& context, const char* name, const char* descri
        , m_src                 (src)
        , m_dst                 (dst)
        , m_iteration   (0)
+       , m_vao         (0)
 {
        DE_ASSERT(src < TARGET_LAST);
        DE_ASSERT(dst < TARGET_LAST);
@@ -3371,10 +3460,9 @@ void BlitFboCase::init (void)
                << "Source framebuffer is filled with green-yellow grid.\n"
                << tcu::TestLog::EndMessage;
 
-       const bool supportsES32 = glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::es(3, 2));
-
-       if (!supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_primitive_bounding_box"))
+       if (!boundingBoxSupported(m_context))
                throw tcu::NotSupportedError("Test requires GL_EXT_primitive_bounding_box extension");
+
        if (m_dst == TARGET_DEFAULT && defaultFBMultisampled)
                throw tcu::NotSupportedError("Test requires non-multisampled default framebuffer");
 
@@ -3434,6 +3522,14 @@ void BlitFboCase::init (void)
                }
        }
 
+
+       // Generate VAO for desktop OpenGL
+       if (!glu::isContextTypeES(m_context.getRenderContext().getType()))
+       {
+               gl.genVertexArrays(1, &m_vao);
+               gl.bindVertexArray(m_vao);
+       }
+
        {
                static const tcu::Vec4 s_quadCoords[] =
                {
@@ -3534,6 +3630,12 @@ void BlitFboCase::deinit (void)
        m_dstRbo.clear();
        m_program.clear();
        m_vbo.clear();
+
+       if (m_vao)
+       {
+               m_context.getRenderContext().getFunctions().deleteVertexArrays(1, &m_vao);
+               m_vao = 0;
+       }
 }
 
 BlitFboCase::IterateResult BlitFboCase::iterate (void)
@@ -3560,9 +3662,10 @@ BlitFboCase::IterateResult BlitFboCase::iterate (void)
                <<      "\tfilter: " << ((blitCfg.linear) ? ("linear") : ("nearest"))
                << tcu::TestLog::EndMessage;
 
-       gl.primitiveBoundingBox(blitCfg.bboxMin.x(), blitCfg.bboxMin.y(), blitCfg.bboxMin.z(), blitCfg.bboxMin.w(),
-                                                       blitCfg.bboxMax.x(), blitCfg.bboxMax.y(), blitCfg.bboxMax.z(), blitCfg.bboxMax.w());
+       auto boundingBoxFunc = getBoundingBoxFunction(m_context);
 
+       boundingBoxFunc(blitCfg.bboxMin.x(), blitCfg.bboxMin.y(), blitCfg.bboxMin.z(), blitCfg.bboxMin.w(),
+                       blitCfg.bboxMax.x(), blitCfg.bboxMax.y(), blitCfg.bboxMax.z(), blitCfg.bboxMax.w());
        gl.bindFramebuffer(GL_DRAW_FRAMEBUFFER, (m_dst == TARGET_FBO) ? (**m_dstFbo) : (m_context.getRenderContext().getDefaultFramebuffer()));
        gl.clearColor(0.0f, 0.0f, 0.0f, 1.0f);
        gl.clear(GL_COLOR_BUFFER_BIT);
@@ -3720,6 +3823,7 @@ private:
 
        de::MovePtr<glu::ShaderProgram> m_program;
        de::MovePtr<glu::Buffer>                m_vbo;
+       glw::GLuint                             m_vao;
        std::vector<LayerInfo>                  m_layers;
 };
 
@@ -3730,6 +3834,7 @@ DepthDrawCase::DepthDrawCase (Context& context, const char* name, const char* de
        , m_depthType   (depthType)
        , m_state               (state)
        , m_bboxSize    (bboxSize)
+       , m_vao         (0)
 {
        DE_ASSERT(depthType < DEPTH_LAST);
        DE_ASSERT(state < STATE_LAST);
@@ -3744,13 +3849,12 @@ DepthDrawCase::~DepthDrawCase (void)
 void DepthDrawCase::init (void)
 {
        const glw::Functions&   gl                              = m_context.getRenderContext().getFunctions();
-       const bool                              supportsES32    = glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::es(3, 2));
+       const bool              hasES32OrGL45                   = supportsES32OrGL45(m_context);
 
        // requirements
-
-       if (!supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_primitive_bounding_box"))
+       if (!boundingBoxSupported(m_context))
                throw tcu::NotSupportedError("Test requires GL_EXT_primitive_bounding_box extension");
-       if (m_state == STATE_PER_PRIMITIVE && !supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_shader"))
+       if (m_state == STATE_PER_PRIMITIVE && !hasES32OrGL45 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_shader"))
                throw tcu::NotSupportedError("Test requires GL_EXT_tessellation_shader extension");
        if (m_context.getRenderTarget().getDepthBits() == 0)
                throw tcu::NotSupportedError("Test requires depth buffer");
@@ -3797,6 +3901,13 @@ void DepthDrawCase::init (void)
                        throw tcu::TestError("failed to build program");
        }
 
+       // Generate VAO for desktop OpenGL
+       if (!glu::isContextTypeES(m_context.getRenderContext().getType()))
+       {
+               gl.genVertexArrays(1, &m_vao);
+               gl.bindVertexArray(m_vao);
+       }
+
        {
                std::vector<tcu::Vec4> data;
 
@@ -3828,6 +3939,12 @@ void DepthDrawCase::deinit (void)
 {
        m_program.clear();
        m_vbo.clear();
+
+       if (m_vao)
+       {
+               m_context.getRenderContext().getFunctions().deleteVertexArrays(1, &m_vao);
+               m_vao = 0;
+       }
 }
 
 DepthDrawCase::IterateResult DepthDrawCase::iterate (void)
@@ -3859,6 +3976,8 @@ DepthDrawCase::IterateResult DepthDrawCase::iterate (void)
        gl.clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        GLU_EXPECT_NO_ERROR(gl.getError(), "setup viewport");
 
+       auto boundingBoxFunc = getBoundingBoxFunction(m_context);
+
        gl.bindBuffer(GL_ARRAY_BUFFER, **m_vbo);
        gl.vertexAttribPointer(posLocation, 4, GL_FLOAT, GL_FALSE, (int)(8 * sizeof(float)), glu::BufferOffsetAsPointer(0 * sizeof(float)));
        gl.vertexAttribPointer(colLocation, 4, GL_FLOAT, GL_FALSE, (int)(8 * sizeof(float)), glu::BufferOffsetAsPointer(4 * sizeof(float)));
@@ -3882,8 +4001,8 @@ DepthDrawCase::IterateResult DepthDrawCase::iterate (void)
                        const float negPadding = (m_bboxSize == BBOX_EQUAL) ? (0.0f) : (rnd.getFloat() * 0.3f);
                        const float posPadding = (m_bboxSize == BBOX_EQUAL) ? (0.0f) : (rnd.getFloat() * 0.3f);
 
-                       gl.primitiveBoundingBox(-1.0f, -1.0f, m_layers[layerNdx].zOffset - negPadding, 1.0f,
-                                                                       1.0f,  1.0f, (m_layers[layerNdx].zOffset + m_layers[layerNdx].zScale + posPadding), 1.0f);
+                       boundingBoxFunc(-1.0f, -1.0f, m_layers[layerNdx].zOffset - negPadding, 1.0f,
+                                       1.0f,  1.0f, (m_layers[layerNdx].zOffset + m_layers[layerNdx].zScale + posPadding), 1.0f);
                }
 
                gl.drawArrays((hasTessellation) ? (GL_PATCHES) : (GL_TRIANGLES), 0, m_gridSize * m_gridSize * 6);
@@ -3971,6 +4090,7 @@ std::string DepthDrawCase::genTessellationControlSource (void) const
        std::ostringstream      buf;
 
        buf <<  "${GLSL_VERSION_DECL}\n"
+                       "${ARB_ES32_COMPATIBILITY_REQUIRE}\n"
                        "${TESSELLATION_SHADER_REQUIRE}\n"
                        "${PRIMITIVE_BOUNDING_BOX_REQUIRE}\n"
                        "layout(vertices=3) out;\n"
@@ -4200,11 +4320,11 @@ ClearCase::~ClearCase (void)
 
 void ClearCase::init (void)
 {
-       const bool supportsES32 = glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::es(3, 2));
+       const bool hasES32OrGL45 = supportsES32OrGL45(m_context);
 
-       if (!supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_primitive_bounding_box"))
+       if (!boundingBoxSupported(m_context))
                throw tcu::NotSupportedError("Test requires GL_EXT_primitive_bounding_box extension");
-       if (m_drawTriangles && !supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_shader"))
+       if (m_drawTriangles && !hasES32OrGL45 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_shader"))
                throw tcu::NotSupportedError("Test requires GL_EXT_tessellation_shader extension");
 
        m_testCtx.getLog()
@@ -4447,9 +4567,11 @@ void ClearCase::renderTo (tcu::Surface& dst, bool useBBox)
                if (useBBox)
                {
                        DE_ASSERT(m_useGlobalState || m_drawTriangles); // !m_useGlobalState -> m_drawTriangles
+
+                       auto boundingBoxFunc = getBoundingBoxFunction(m_context);
                        if (m_useGlobalState)
-                               gl.primitiveBoundingBox(bboxMin.x(), bboxMin.y(), bboxMin.z(), bboxMin.w(),
-                                                                               bboxMax.x(), bboxMax.y(), bboxMax.z(), bboxMax.w());
+                               boundingBoxFunc(bboxMin.x(), bboxMin.y(), bboxMin.z(), bboxMin.w(),
+                                               bboxMax.x(), bboxMax.y(), bboxMax.z(), bboxMax.w());
                }
 
                if (m_drawTriangles)
@@ -4583,6 +4705,7 @@ std::string ClearCase::genTessellationControlSource (bool setBBox) const
        std::ostringstream buf;
 
        buf <<  "${GLSL_VERSION_DECL}\n"
+                       "${ARB_ES32_COMPATIBILITY_REQUIRE}\n"
                        "${TESSELLATION_SHADER_REQUIRE}\n";
 
        if (setBBox)
@@ -4651,6 +4774,7 @@ private:
        const CallOrder                                 m_callOrder;
 
        de::MovePtr<glu::Buffer>                m_vbo;
+       glw::GLuint                             m_vao;
        de::MovePtr<glu::ShaderProgram> m_program;
        int                                                             m_numVertices;
 };
@@ -4658,6 +4782,7 @@ private:
 ViewportCallOrderCase::ViewportCallOrderCase (Context& context, const char* name, const char* description, CallOrder callOrder)
        : TestCase              (context, name, description)
        , m_callOrder   (callOrder)
+       , m_vao         (0)
        , m_numVertices (-1)
 {
        DE_ASSERT(m_callOrder < ORDER_LAST);
@@ -4670,12 +4795,12 @@ ViewportCallOrderCase::~ViewportCallOrderCase (void)
 
 void ViewportCallOrderCase::init (void)
 {
-       const bool supportsES32 = glu::contextSupports(m_context.getRenderContext().getType(), glu::ApiType::es(3, 2));
+       const bool hasES32OrGL45 = supportsES32OrGL45(m_context);
 
-       if (!supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_primitive_bounding_box"))
+       if (!boundingBoxSupported(m_context))
                throw tcu::NotSupportedError("Test requires GL_EXT_primitive_bounding_box extension");
 
-       if (!supportsES32 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_shader"))
+       if (!hasES32OrGL45 && !m_context.getContextInfo().isExtensionSupported("GL_EXT_tessellation_shader"))
                throw tcu::NotSupportedError("Test requires GL_EXT_tessellation_shader extension");
 
        m_testCtx.getLog()
@@ -4700,6 +4825,12 @@ void ViewportCallOrderCase::deinit (void)
 {
        m_vbo.clear();
        m_program.clear();
+
+       if (m_vao)
+       {
+               m_context.getRenderContext().getFunctions().deleteVertexArrays(1, &m_vao);
+               m_vao = 0;
+       }
 }
 
 ViewportCallOrderCase::IterateResult ViewportCallOrderCase::iterate (void)
@@ -4734,8 +4865,9 @@ ViewportCallOrderCase::IterateResult ViewportCallOrderCase::iterate (void)
                                << "\t(0.0, -1.0, -1.0, 1.0) .. (1.0, 1.0, 1.0f, 1.0)"
                                << tcu::TestLog::EndMessage;
 
-                       gl.primitiveBoundingBox(0.0f, -1.0f, -1.0f, 1.0f,
-                                                                       1.0f,  1.0f,  1.0f, 1.0f);
+                       auto boundingBoxFunc = getBoundingBoxFunction(m_context);
+
+                       boundingBoxFunc(0.0f, -1.0f, -1.0f, 1.0f, 1.0f,  1.0f,  1.0f, 1.0f);
                }
        }
 
@@ -4810,6 +4942,12 @@ void ViewportCallOrderCase::genVbo (void)
                }
        }
 
+       // Generate VAO for desktop OpenGL
+       if (!glu::isContextTypeES(m_context.getRenderContext().getType())) {
+               gl.genVertexArrays(1, &m_vao);
+               gl.bindVertexArray(m_vao);
+       }
+
        m_vbo = de::MovePtr<glu::Buffer>(new glu::Buffer(m_context.getRenderContext()));
        gl.bindBuffer(GL_ARRAY_BUFFER, **m_vbo);
        gl.bufferData(GL_ARRAY_BUFFER, (int)(data.size() * sizeof(tcu::Vec4)), &data[0], GL_STATIC_DRAW);
@@ -4896,6 +5034,7 @@ std::string ViewportCallOrderCase::genFragmentSource (void) const
 std::string ViewportCallOrderCase::genTessellationControlSource (void) const
 {
        return  "${GLSL_VERSION_DECL}\n"
+                       "${ARB_ES32_COMPATIBILITY_REQUIRE}\n"
                        "${TESSELLATION_SHADER_REQUIRE}\n"
                        "layout(vertices=3) out;\n"
                        "in highp vec4 v_vertex_color[];\n"
index 8303795..da97fa8 100644 (file)
@@ -93,9 +93,17 @@ InterpolationOffsetCase::IterateResult InterpolationOffsetCase::iterate (void)
        gl.enableLogging(true);
 
        if (m_testType == TEST_MAX_OFFSET)
-               verifyStateFloatMin(result, gl, GL_MAX_FRAGMENT_INTERPOLATION_OFFSET, 0.5, m_verifier);
+       {
+               glw::GLfloat fragmentInterpolationOffsetBits = 0.0;
+               gl.glGetFloatv(GL_FRAGMENT_INTERPOLATION_OFFSET_BITS, &fragmentInterpolationOffsetBits);
+               GLU_EXPECT_NO_ERROR(gl.glGetError(), "glGetIntegerv");
+
+               glw::GLfloat ULP = 1.0f / powf(2, fragmentInterpolationOffsetBits);
+
+               verifyStateFloatMin(result, gl, GL_MAX_FRAGMENT_INTERPOLATION_OFFSET, 0.5f-ULP, m_verifier);
+       }
        else if (m_testType == TEST_MIN_OFFSET)
-               verifyStateFloatMax(result, gl, GL_MIN_FRAGMENT_INTERPOLATION_OFFSET, -0.5, m_verifier);
+               verifyStateFloatMax(result, gl, GL_MIN_FRAGMENT_INTERPOLATION_OFFSET, -0.5f, m_verifier);
        else
                DE_ASSERT(false);