From 60be71aeaa4ed6a15f65b8a437a6146e420ee26b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tapani=20P=C3=A4lli?= Date: Tue, 27 Sep 2022 08:42:13 +0300 Subject: [PATCH] anv: limit to default fast clear color when image used for transfer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v2: use vk_image_layout_to_usage_flags for detecting transfer usage (Nanley) Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7189 Signed-off-by: Tapani Pälli Reviewed-by: Nanley Chery Part-of: --- src/intel/vulkan/anv_image.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index a6327cb9c06..a34f1376f6b 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -2371,6 +2371,9 @@ anv_layout_to_fast_clear_type(const struct intel_device_info * const devinfo, enum isl_aux_state aux_state = anv_layout_to_aux_state(devinfo, image, aspect, layout); + const VkImageUsageFlags layout_usage = + vk_image_layout_to_usage_flags(layout, aspect); + switch (aux_state) { case ISL_AUX_STATE_CLEAR: unreachable("We never use this state"); @@ -2389,6 +2392,12 @@ anv_layout_to_fast_clear_type(const struct intel_device_info * const devinfo, * must get partially resolved before we leave the render pass. */ return ANV_FAST_CLEAR_ANY; + } else if (layout_usage & (VK_IMAGE_USAGE_TRANSFER_SRC_BIT | + VK_IMAGE_USAGE_TRANSFER_DST_BIT)) { + /* Fast clear with non zero color is not supported during transfer + * operations since transfer may do format reinterpretation. + */ + return ANV_FAST_CLEAR_DEFAULT_VALUE; } else if (image->planes[plane].aux_usage == ISL_AUX_USAGE_MCS || image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E) { if (devinfo->ver >= 11) {