iris: slow clear higher miplevels on single sampled 8bpp resources that have TILE64

This helps fix a number of piglit tests that exercise this
functionality, such as:
  - piglit.spec.arb_texture_rg.fbo-clear-formats
  - piglit.spec.ext_framebuffer_object.fbo-clear-formats
  - piglit.spec.ext_texture_snorm.fbo-clear-formats

Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23030>
This commit is contained in:
Rohan Garg 2024-03-27 10:12:05 +01:00 committed by Marge Bot
parent 772149b15a
commit 8670fd6ac4

View file

@ -134,6 +134,18 @@ can_fast_clear_color(struct iris_context *ice,
*/
if (level > 0 && util_format_get_blocksizebits(p_res->format) == 8 &&
p_res->width0 % 64) {
assert(res->surf.samples == 1);
return false;
}
/* TODO: Fast clearing higher miplevels on 8 bpp single sampled TILE64
* resources for certain widths seems broken.
*/
if (level > 0 && util_format_get_blocksizebits(p_res->format) == 8 &&
res->surf.tiling == ISL_TILING_64) {
assert(res->surf.samples == 1);
perf_debug(&ice->dbg, "Slow clearing higher miplevels for single sampled "
"8 bpp resource");
return false;
}