anv: use slow clear for small surfaces with Wa_18020603990

Described in Wa_18020603990, we need to use slow clear or add an
partial resolve after fast clear for surfaces where bpp <= 32 and
dim <= 256x256.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26629>
This commit is contained in:
Tapani Pälli 2023-12-11 10:03:51 +02:00 committed by Marge Bot
parent ca8d9f850b
commit 25a32433b1

View file

@ -3269,6 +3269,16 @@ anv_can_fast_clear_color_view(struct anv_device *device,
"LOAD_OP_CLEAR. Only fast-clearing the first slice");
}
/* Wa_18020603990 - slow clear surfaces up to 256x256, 32bpp. */
if (intel_needs_workaround(device->info, 18020603990)) {
const struct anv_surface *anv_surf =
&iview->image->planes->primary_surface;
if (isl_format_get_layout(anv_surf->isl.format)->bpb <= 32 &&
anv_surf->isl.logical_level0_px.w <= 256 &&
anv_surf->isl.logical_level0_px.h <= 256)
return false;
}
return true;
}