From 49c91a4ea0310fa90580d3dbcbb1a37a7b9db15c Mon Sep 17 00:00:00 2001 From: Jianxun Zhang Date: Wed, 10 Jul 2024 13:09:25 -0700 Subject: [PATCH] anv: Fix assertion failures on BMG (xe2) Fixes: beb0ea24696 ("anv: Disable tracking fast clear and aux state (xe2)") crucible run func.first dEQP-VK.api.copy_and_blit.core.image_to_image. all_formats.color.2d_to_2d.a1r5g5b5_unorm_pack16. r16_uint.optimal_optimal dEQP-VK.pipeline.monolithic.multisample.misc.clear_attachments. r8g8b8a8_unorm_r16g16b16a16_sfloat_r16g16b16a16_sint_d32_sfloat_ s8_uint.16x.ds_resolve_sample_zero.whole_framebuffer src/intel/vulkan/anv_private.h:5491: anv_image_get_compression_state_addr: Assertion `device->info->ver < 20' failed. Backport-to: 24.2 Signed-off-by: Jianxun Zhang Reviewed-by: Nanley Chery Part-of: --- src/intel/vulkan/genX_cmd_buffer.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index b2e697bb39f..f1f3028ca3c 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -823,6 +823,7 @@ genX(cmd_buffer_mark_image_written)(struct anv_cmd_buffer *cmd_buffer, uint32_t base_layer, uint32_t layer_count) { +#if GFX_VER < 20 /* The aspect must be exactly one of the image aspects. */ assert(util_bitcount(aspect) == 1 && (aspect & image->vk.aspects)); @@ -836,6 +837,7 @@ genX(cmd_buffer_mark_image_written)(struct anv_cmd_buffer *cmd_buffer, set_image_compressed_bit(cmd_buffer, image, aspect, level, base_layer, layer_count, true); +#endif } static void @@ -3948,8 +3950,6 @@ cmd_buffer_barrier(struct anv_cmd_buffer *cmd_buffer, return; } - struct anv_device *device = cmd_buffer->device; - /* XXX: Right now, we're really dumb and just flush whatever categories * the app asks for. One of these days we may make this a bit better but * right now that's all the hardware allows for in most areas. @@ -3959,6 +3959,7 @@ cmd_buffer_barrier(struct anv_cmd_buffer *cmd_buffer, #if GFX_VER < 20 bool apply_sparse_flushes = false; + struct anv_device *device = cmd_buffer->device; #endif bool flush_query_copies = false; @@ -4096,7 +4097,7 @@ cmd_buffer_barrier(struct anv_cmd_buffer *cmd_buffer, false /* will_full_fast_clear */); } } - +#if GFX_VER < 20 /* Mark image as compressed if the destination layout has untracked * writes to the aux surface. */ @@ -4128,7 +4129,6 @@ cmd_buffer_barrier(struct anv_cmd_buffer *cmd_buffer, } } -#if GFX_VER < 20 if (anv_image_is_sparse(image) && mask_is_write(src_flags)) apply_sparse_flushes = true; #endif @@ -5354,6 +5354,7 @@ cmd_buffer_mark_attachment_written(struct anv_cmd_buffer *cmd_buffer, struct anv_attachment *att, VkImageAspectFlagBits aspect) { +#if GFX_VER < 20 struct anv_cmd_graphics_state *gfx = &cmd_buffer->state.gfx; const struct anv_image_view *iview = att->iview; @@ -5379,6 +5380,7 @@ cmd_buffer_mark_attachment_written(struct anv_cmd_buffer *cmd_buffer, level, layer, 1); } } +#endif } void genX(CmdEndRendering)(