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 <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31743>
This commit is contained in:
Nanley Chery
2024-10-07 21:58:26 -04:00
committed by Marge Bot
parent 8f9ed7e932
commit 0d4f2a2db1
+14 -15
View File
@@ -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]);