anv: 3D surfaces have fewer layers for higher miplevels

Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23632>
This commit is contained in:
Rohan Garg 2024-03-14 14:49:09 +01:00 committed by Marge Bot
parent 9628723943
commit 49ed35c08a

View file

@ -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);
}
}