From 49ed35c08a43b795cb199b35ef0b8e7bd9ba5419 Mon Sep 17 00:00:00 2001 From: Rohan Garg Date: Thu, 14 Mar 2024 14:49:09 +0100 Subject: [PATCH] anv: 3D surfaces have fewer layers for higher miplevels Signed-off-by: Rohan Garg Reviewed-by: Nanley Chery Part-of: --- src/intel/vulkan/genX_cmd_buffer.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index fa33953f9a2..c9bf73f0271 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -3996,9 +3996,19 @@ cmd_buffer_barrier(struct anv_cmd_buffer *cmd_buffer, img_barrier->newLayout, cmd_buffer->queue_family->queueFlags)) { for (uint32_t l = 0; l < level_count; l++) { + const uint32_t level = range->baseMipLevel + l; + const uint32_t aux_layers = + anv_image_aux_layers(image, aspect, level); + + if (base_layer >= aux_layers) + break; /* We will only get fewer layers as level increases */ + + uint32_t level_layer_count = + MIN2(layer_count, aux_layers - base_layer); + set_image_compressed_bit(cmd_buffer, image, aspect, - range->baseMipLevel + l, - base_layer, layer_count, + level, + base_layer, level_layer_count, true); } }