Mesa (main): anv: move gfx12+ CCS_E clear color restriction
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jul 11 15:30:07 UTC 2022
Module: Mesa
Branch: main
Commit: e082b26458c1d783126fe48e7fddbc672c369791
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e082b26458c1d783126fe48e7fddbc672c369791
Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date: Thu Jul 7 22:36:28 2022 +0300
anv: move gfx12+ CCS_E clear color restriction
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17329>
---
src/intel/vulkan/anv_image.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index 724f8841edd..40d9c36180b 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -381,6 +381,17 @@ can_fast_clear_with_non_zero_color(const struct intel_device_info *devinfo,
if (!isl_aux_usage_has_fast_clears(image->planes[plane].aux_usage))
return false;
+ /* On TGL, if a block of fragment shader outputs match the surface's clear
+ * color, the HW may convert them to fast-clears (see HSD 14010672564).
+ * This can lead to rendering corruptions if not handled properly. We
+ * restrict the clear color to zero to avoid issues that can occur with:
+ * - Texture view rendering (including blorp_copy calls)
+ * - Images with multiple levels or array layers
+ */
+ if (devinfo->ver >= 12 &&
+ image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E)
+ return false;
+
/* Non mutable image, we can fast clear with any color supported by HW.
*/
if (!(image->vk.create_flags & VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT))
@@ -2370,17 +2381,6 @@ anv_layout_to_fast_clear_type(const struct intel_device_info * const devinfo,
case ISL_AUX_STATE_COMPRESSED_CLEAR:
if (aspect == VK_IMAGE_ASPECT_DEPTH_BIT) {
return ANV_FAST_CLEAR_DEFAULT_VALUE;
- } else if (devinfo->ver >= 12 &&
- image->planes[plane].aux_usage == ISL_AUX_USAGE_CCS_E) {
- /* On TGL, if a block of fragment shader outputs match the surface's
- * clear color, the HW may convert them to fast-clears (see HSD
- * 14010672564). This can lead to rendering corruptions if not
- * handled properly. We restrict the clear color to zero to avoid
- * issues that can occur with:
- * - Texture view rendering (including blorp_copy calls)
- * - Images with multiple levels or array layers
- */
- return ANV_FAST_CLEAR_DEFAULT_VALUE;
} else if (layout == VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) {
/* The image might not support non zero fast clears when mutable. */
if (!image->planes[plane].can_non_zero_fast_clear)
More information about the mesa-commit
mailing list