From 0d4f2a2db165f47b70093939cdcc51afe18cff66 Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Mon, 7 Oct 2024 21:58:26 -0400 Subject: [PATCH] anv: Move code out of loop in anv_CmdClearColorImage According to the spec, the clear range's aspect will always be the color aspect. Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/vulkan/anv_blorp.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c index 8282f32a25c..b770a4d8bdf 100644 --- a/src/intel/vulkan/anv_blorp.c +++ b/src/intel/vulkan/anv_blorp.c @@ -1394,22 +1394,21 @@ void anv_CmdClearColorImage( struct blorp_batch batch; anv_blorp_batch_init(cmd_buffer, &batch, 0); + struct anv_format_plane src_format = + anv_get_format_aspect(cmd_buffer->device->info, image->vk.format, + VK_IMAGE_ASPECT_COLOR_BIT, image->vk.tiling); + struct blorp_surf surf; + get_blorp_surf_for_anv_image(cmd_buffer, image, + VK_IMAGE_ASPECT_COLOR_BIT, + VK_IMAGE_USAGE_TRANSFER_DST_BIT, + imageLayout, ISL_AUX_USAGE_NONE, + &surf); + + union isl_color_value clear_color = vk_to_isl_color(*pColor); + + for (unsigned r = 0; r < rangeCount; r++) { - if (pRanges[r].aspectMask == 0) - continue; - - assert(pRanges[r].aspectMask & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV); - - struct blorp_surf surf; - get_blorp_surf_for_anv_image(cmd_buffer, - image, pRanges[r].aspectMask, - VK_IMAGE_USAGE_TRANSFER_DST_BIT, - imageLayout, ISL_AUX_USAGE_NONE, &surf); - - struct anv_format_plane src_format = - anv_get_format_aspect(cmd_buffer->device->info, image->vk.format, - VK_IMAGE_ASPECT_COLOR_BIT, image->vk.tiling); - union isl_color_value clear_color = vk_to_isl_color(*pColor); + assert(pRanges[r].aspectMask == VK_IMAGE_ASPECT_COLOR_BIT); uint32_t level_count = vk_image_subresource_level_count(&image->vk, &pRanges[r]);