iris: Disable fast clear when surface height is 16k

If surface height during fast clear is 16k, as per bspec the height programmed
should be "value - 1" i.e. 0x3FFF. However, HW adds "1" to it but ignores
overflow bit[14]. HW performs OOB check based on bit[13:0] which is 0 and
drops failed transactions.

This patch passes the following failing test on LNL:
"PIGLIT_PLATFORM=gbm PIGLIT_DEFAULT_SIZE=16384x16384
shader_runner fast-slow-clear-interaction.shader_test -auto -fbo"

Signed-off-by: Aditya Swarup <aditya.swarup@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29182>
This commit is contained in:
Aditya Swarup 2024-08-02 12:44:47 -07:00 committed by Marge Bot
parent 6145798022
commit 0f821c1e2f

View file

@ -157,6 +157,12 @@ can_fast_clear_color(struct iris_context *ice,
return false;
}
/* Wa_16021232440: Disable fast clear when height is 16k */
if (intel_needs_workaround(devinfo, 16021232440) &&
res->surf.logical_level0_px.h == 16 * 1024) {
return false;
}
return true;
}