From 1bf626cea7112c809956d9b7091c4e4b04ab61a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tapani=20P=C3=A4lli?= Date: Mon, 4 Aug 2025 17:05:09 +0200 Subject: [PATCH] isl/blorp: handle failing 96bpp linear blit case MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Sagar Ghuge Reviewed-by: Nanley Chery Part-of: (cherry picked from commit 42088cd6029653997d471b5f37e0c8fbf7663e0b) --- .pick_status.json | 2 +- src/intel/blorp/blorp_blit.c | 6 ++++-- src/intel/isl/isl_genX_helpers.h | 4 ++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index b1bb37bbe6d..b14b9dd6826 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -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 diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c index 191af2db3d4..94e57eb3c6f 100644 --- a/src/intel/blorp/blorp_blit.c +++ b/src/intel/blorp/blorp_blit.c @@ -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 || diff --git a/src/intel/isl/isl_genX_helpers.h b/src/intel/isl/isl_genX_helpers.h index 4788d23cd48..5e45ebd0b62 100644 --- a/src/intel/isl/isl_genX_helpers.h +++ b/src/intel/isl/isl_genX_helpers.h @@ -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"