radv: do not allow 1D block-compressed images with (extended) storage on GFX6
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 17 Apr 2023 16:03:38 +0000 (18:03 +0200)
committerMarge Bot <emma+marge@anholt.net>
Thu, 20 Apr 2023 08:20:50 +0000 (08:20 +0000)
For some reasons this seems broken only on GFX6. Note that PAL doesn't
allowed block-compressed with 1D on all GPUs.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22540>

src/amd/ci/external/radv-pitcairn-aco-fails.txt
src/amd/vulkan/radv_formats.c

index 90287fd..03be656 100644 (file)
@@ -20,116 +20,4 @@ dEQP-VK.texture.mipmap.cubemap.image_view_min_lod.base_level.nearest_nearest,Fai
 
 # New CTS failures in 1.3.5.0.
 dEQP-VK.dynamic_rendering.primary_cmd_buff.basic.contents_2_secondary_cmdbuffers,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_srgb_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_srgb_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_srgb_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_srgb_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_srgb_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_srgb_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_unorm_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_unorm_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_unorm_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_unorm_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_unorm_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgb_unorm_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_srgb_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_srgb_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_srgb_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_srgb_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_srgb_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_srgb_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_unorm_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_unorm_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_unorm_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_unorm_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_unorm_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc1_rgba_unorm_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc2_srgb_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc2_srgb_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc2_unorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc2_unorm_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc3_srgb_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc3_srgb_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc3_unorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc3_unorm_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_snorm_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_snorm_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_snorm_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_snorm_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_snorm_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_snorm_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_unorm_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_unorm_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_unorm_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_unorm_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_unorm_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc4_unorm_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc5_snorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc5_snorm_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc5_unorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc5_unorm_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc6h_sfloat_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc6h_sfloat_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc6h_ufloat_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc6h_ufloat_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc7_srgb_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc7_srgb_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc7_unorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.basic.1d_image.image_store.bc7_unorm_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_srgb_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_srgb_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_srgb_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_srgb_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_srgb_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_srgb_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_unorm_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_unorm_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_unorm_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_unorm_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_unorm_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgb_unorm_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_srgb_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_srgb_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_srgb_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_srgb_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_srgb_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_srgb_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_unorm_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_unorm_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_unorm_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_unorm_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_unorm_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc1_rgba_unorm_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc2_srgb_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc2_srgb_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc2_unorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc2_unorm_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc3_srgb_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc3_srgb_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc3_unorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc3_unorm_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_snorm_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_snorm_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_snorm_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_snorm_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_snorm_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_snorm_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_unorm_block.r16g16b16a16_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_unorm_block.r16g16b16a16_snorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_unorm_block.r16g16b16a16_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_unorm_block.r16g16b16a16_unorm,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_unorm_block.r32g32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc4_unorm_block.r32g32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc5_snorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc5_snorm_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc5_unorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc5_unorm_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc6h_sfloat_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc6h_sfloat_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc6h_ufloat_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc6h_ufloat_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc7_srgb_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc7_srgb_block.r32g32b32a32_uint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc7_unorm_block.r32g32b32a32_sint,Fail
-dEQP-VK.image.texel_view_compatible.compute.extended.1d_image.image_store.bc7_unorm_block.r32g32b32a32_uint,Fail
 dEQP-VK.pipeline.fast_linked_library.multisample_interpolation.sample_interpolation_consistency.component_1.128_128_1.samples_8,Fail
index 6240ca1..669f4be 100644 (file)
@@ -1555,6 +1555,17 @@ radv_get_image_format_properties(struct radv_physical_device *physical_device,
       goto unsupported;
    }
 
+   /* For some reasons, we can't create 1d block-compressed images that can be stored to with a
+    * different format on GFX6.
+    */
+   if (physical_device->rad_info.gfx_level == GFX6 && info->type == VK_IMAGE_TYPE_1D &&
+       vk_format_is_block_compressed(format) &&
+       (info->flags & VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT) &&
+       ((info->flags & VK_IMAGE_CREATE_EXTENDED_USAGE_BIT) ||
+        (info->usage & VK_IMAGE_USAGE_STORAGE_BIT))) {
+      goto unsupported;
+   }
+
    /* From the Vulkan 1.3.206 spec:
     *
     * "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT specifies that the image can be created with usage flags