aco: Fix image instructions with lod when 2d_view_of_3d is enabled on GFX9.

If there's a lod parameter it matter if the image is 3d or 2d because
the hw reads either the fourth or third component as lod. So detect
3d images and place the lod at the third component otherwise.

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18114>
This commit is contained in:
Georg Lehmann 2022-08-17 19:43:15 +02:00 committed by Marge Bot
parent 6eb4dfca23
commit a82b9d6001
3 changed files with 36 additions and 404 deletions

View file

@ -41,198 +41,3 @@ dEQP-VK.api.copy_and_blit.dedicated_allocation.resolve_image.diff_layout_copy_be
dEQP-VK.api.copy_and_blit.dedicated_allocation.resolve_image.diff_layout_copy_before_resolving.4_bit_transfer_src_optimal_general_bind_offset,Fail
dEQP-VK.api.copy_and_blit.dedicated_allocation.resolve_image.diff_layout_copy_before_resolving.8_bit_general_general_bind_offset,Fail
dEQP-VK.api.copy_and_blit.dedicated_allocation.resolve_image.diff_layout_copy_before_resolving.8_bit_transfer_src_optimal_general_bind_offset,Fail
dEQP-VK.image.load_store_lod.with_format.2d.a2b10g10r10_uint_pack32,Fail
dEQP-VK.image.load_store_lod.with_format.2d.a2b10g10r10_unorm_pack32,Fail
dEQP-VK.image.load_store_lod.with_format.2d.b10g11r11_ufloat_pack32,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32b32a32_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32b32a32_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32b32a32_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.a2b10g10r10_uint_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.a2b10g10r10_unorm_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.b10g11r11_ufloat_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.a2b10g10r10_uint_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.a2b10g10r10_unorm_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.b10g11r11_ufloat_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.a2b10g10r10_uint_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.a2b10g10r10_unorm_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.b10g11r11_ufloat_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.without_format.2d.a2b10g10r10_uint_pack32,Fail
dEQP-VK.image.load_store_lod.without_format.2d.a2b10g10r10_unorm_pack32,Fail
dEQP-VK.image.load_store_lod.without_format.2d.b10g11r11_ufloat_pack32,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32b32a32_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32b32a32_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32b32a32_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_unorm,Fail

View file

@ -37,198 +37,3 @@ dEQP-VK.api.copy_and_blit.dedicated_allocation.resolve_image.diff_layout_copy_be
dEQP-VK.api.copy_and_blit.dedicated_allocation.resolve_image.diff_layout_copy_before_resolving.4_bit_transfer_src_optimal_general_bind_offset,Fail
dEQP-VK.api.copy_and_blit.dedicated_allocation.resolve_image.diff_layout_copy_before_resolving.8_bit_general_general_bind_offset,Fail
dEQP-VK.api.copy_and_blit.dedicated_allocation.resolve_image.diff_layout_copy_before_resolving.8_bit_transfer_src_optimal_general_bind_offset,Fail
dEQP-VK.image.load_store_lod.with_format.2d.a2b10g10r10_uint_pack32,Fail
dEQP-VK.image.load_store_lod.with_format.2d.a2b10g10r10_unorm_pack32,Fail
dEQP-VK.image.load_store_lod.with_format.2d.b10g11r11_ufloat_pack32,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32b32a32_sfloat,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32b32a32_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r32g32b32a32_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_sint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_snorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_uint,Fail
dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_unorm,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.a2b10g10r10_uint_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.a2b10g10r10_unorm_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.b10g11r11_ufloat_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.a2b10g10r10_uint_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.a2b10g10r10_unorm_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.b10g11r11_ufloat_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.a2b10g10r10_uint_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.a2b10g10r10_unorm_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.b10g11r11_ufloat_pack32_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_sfloat_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_sint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_snorm_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_uint_single_layer,Fail
dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_unorm_single_layer,Fail
dEQP-VK.image.load_store_lod.without_format.2d.a2b10g10r10_uint_pack32,Fail
dEQP-VK.image.load_store_lod.without_format.2d.a2b10g10r10_unorm_pack32,Fail
dEQP-VK.image.load_store_lod.without_format.2d.b10g11r11_ufloat_pack32,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32b32a32_sfloat,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32b32a32_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r32g32b32a32_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8_unorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_sint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_snorm,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_uint,Fail
dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_unorm,Fail

View file

@ -6141,6 +6141,21 @@ get_image_coords(isel_context* ctx, const nir_intrinsic_instr* instr)
coords.emplace_back(emit_extract_vector(ctx, src0, i, rc));
}
bool has_lod = false;
Temp lod;
if (instr->intrinsic == nir_intrinsic_bindless_image_load ||
instr->intrinsic == nir_intrinsic_bindless_image_sparse_load ||
instr->intrinsic == nir_intrinsic_bindless_image_store) {
int lod_index = instr->intrinsic == nir_intrinsic_bindless_image_store ? 4 : 3;
assert(instr->src[lod_index].ssa->bit_size == (a16 ? 16 : 32));
has_lod =
!nir_src_is_const(instr->src[lod_index]) || nir_src_as_uint(instr->src[lod_index]) != 0;
if (has_lod)
lod = get_ssa_temp_tex(ctx, instr->src[lod_index].ssa, a16);
}
if (ctx->options->key.image_2d_view_of_3d &&
dim == GLSL_SAMPLER_DIM_2D && !is_array) {
/* The hw can't bind a slice of a 3D image as a 2D image, because it
@ -6151,9 +6166,25 @@ get_image_coords(isel_context* ctx, const nir_intrinsic_instr* instr)
Temp rsrc = bld.as_uniform(get_ssa_temp(ctx, instr->src[0].ssa));
Temp rsrc_word5 = emit_extract_vector(ctx, rsrc, 5, v1);
/* Extract the BASE_ARRAY field [0:12] from the descriptor. */
Temp first_layer =
bld.vop3(aco_opcode::v_bfe_u32, bld.def(v1), rsrc_word5,
Operand::c32(0u), Operand::c32(13u));
Temp first_layer = bld.vop3(aco_opcode::v_bfe_u32, bld.def(v1), rsrc_word5, Operand::c32(0u),
Operand::c32(13u));
if (has_lod) {
/* If there's a lod parameter it matter if the image is 3d or 2d because
* the hw reads either the fourth or third component as lod. So detect
* 3d images and place the lod at the third component otherwise.
* For non 3D descriptors we effectively add lod twice to coords,
* but the hw will only read the first one, the second is ignored.
*/
Temp rsrc_word3 = emit_extract_vector(ctx, rsrc, 3, s1);
Temp type = bld.sop2(aco_opcode::s_bfe_u32, bld.def(s1), bld.def(s1, scc), rsrc_word3,
Operand::c32(28 | (4 << 16))); /* extract last 4 bits */
Temp is_3d = bld.vopc_e64(aco_opcode::v_cmp_eq_u32, bld.def(bld.lm), type,
Operand::c32(V_008F1C_SQ_RSRC_IMG_3D));
first_layer =
bld.vop2(aco_opcode::v_cndmask_b32, bld.def(v1), as_vgpr(ctx, lod), first_layer, is_3d);
}
if (a16)
coords.emplace_back(emit_extract_vector(ctx, first_layer, 0, v2b));
else
@ -6165,17 +6196,8 @@ get_image_coords(isel_context* ctx, const nir_intrinsic_instr* instr)
coords.emplace_back(get_ssa_temp_tex(ctx, instr->src[2].ssa, a16));
}
if (instr->intrinsic == nir_intrinsic_bindless_image_load ||
instr->intrinsic == nir_intrinsic_bindless_image_sparse_load ||
instr->intrinsic == nir_intrinsic_bindless_image_store) {
int lod_index = instr->intrinsic == nir_intrinsic_bindless_image_store ? 4 : 3;
assert(instr->src[lod_index].ssa->bit_size == (a16 ? 16 : 32));
bool level_zero =
nir_src_is_const(instr->src[lod_index]) && nir_src_as_uint(instr->src[lod_index]) == 0;
if (!level_zero)
coords.emplace_back(get_ssa_temp_tex(ctx, instr->src[lod_index].ssa, a16));
}
if (has_lod)
coords.emplace_back(lod);
return emit_pack_v1(ctx, coords);
}