isl/blorp: handle failing 96bpp linear blit case

Fix the aux usage assert in blorp for 96bpp linear blit and provide CMF
values for RGB formats supported by isl_format_rgb_to_rgba.

CC: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13670
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36709>
(cherry picked from commit 42088cd602)
This commit is contained in:
Tapani Pälli 2025-08-04 17:05:09 +02:00 committed by Eric Engestrom
parent 822a60a340
commit 1bf626cea7
3 changed files with 9 additions and 3 deletions

View file

@ -2984,7 +2984,7 @@
"description": "isl/blorp: handle failing 96bpp linear blit case",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -2490,8 +2490,10 @@ blorp_copy_supports_blitter(struct blorp_context *blorp,
/* XY_BLOCK_COPY_BLT mentions it doesn't support clear colors for 96bpp
* formats, but none of them support CCS anyway, so it's a moot point.
*/
assert(src_aux_usage == ISL_AUX_USAGE_NONE);
assert(dst_aux_usage == ISL_AUX_USAGE_NONE);
if (devinfo->verx10 < 20) {
assert(src_aux_usage == ISL_AUX_USAGE_NONE);
assert(dst_aux_usage == ISL_AUX_USAGE_NONE);
}
/* We can only support linear mode for 96bpp. */
if (src_surf->tiling != ISL_TILING_LINEAR ||

View file

@ -204,6 +204,10 @@ isl_get_qpitch(const struct isl_surf *surf)
UNUSED static uint8_t
isl_get_render_compression_format(enum isl_format format)
{
/* The spec gives no CMFs to NPOT RGB formats. Remap them to RGBA. */
if (isl_format_get_layout(format)->bpb % 3 == 0)
format = isl_format_rgb_to_rgba(format);
/* Bspec 63919 (r60413):
*
* Table "[Enumeration] UNIFIED_COMPRESSION_FORMAT"