mesa/src/intel/blorp
Nanley Chery f0b6b57c77 intel/blorp: Avoid 32bpc fast clear sampling issue
For 32bpc formats, the ICL+ sampler fetches the raw clear color dwords
used for rendering instead of the converted pixel dwords typically used
for sampling. The CLEAR_COLOR struct page documents this for 128bpp
formats, but not for 32bpp and 64bpp formats.

In blorp_copy, map R11G11B10_FLOAT to R8G8B8A8_UINT instead of R32_UINT.
This will cause the sampler to fetch the clear color pixel, allowing
drivers to keep clear color support enabled during copies.

If iris is forced to convert blits to copies, this patch fixes the
following test on gfx12:

  dEQP-GLES3.functional.fbo.color.repeated_clear.blit.rbo.r11f_g11f_b10f

At the moment, both iris and anv won't hit this issue outside of
blorp_copy. This is due to the read/write access restrictions they
currently place on texture views that reinterpret the surface format.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8964
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23604>
2023-06-15 14:17:49 +00:00
..
blorp.c intel: Implement ISL_AUX_OP_AMBIGUATE for MCS 2023-05-11 23:41:16 +00:00
blorp.h intel/blorp: Add and use blorp_copy_get_formats 2023-05-22 22:20:58 +00:00
blorp_blit.c intel/blorp: Avoid 32bpc fast clear sampling issue 2023-06-15 14:17:49 +00:00
blorp_clear.c intel: Rename the GFX12_CCS_E aux-usage to FCV_CCS_E 2023-06-07 23:39:39 +00:00
blorp_genX_exec.h intel: Rename the GFX12_CCS_E aux-usage to FCV_CCS_E 2023-06-07 23:39:39 +00:00
blorp_nir_builder.h treewide: Use nir_trim_vector more 2023-06-06 18:52:25 +00:00
blorp_priv.h blorp: Make blitter_supports_aux accessible from multiple files. 2022-09-28 08:41:35 +00:00
meson.build blorp: add dependency on idep_intel_dev 2023-03-03 13:04:23 +00:00