From bda7f8572e8a260f804d0a952a655539c9ab4108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Molinari?= Date: Tue, 10 Feb 2026 11:12:21 +0100 Subject: [PATCH] pan/crc: Check AFBC renderblock size on v5 and v6 too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Arch v5 and v6 should test the AFBC render block size too. In the non-AFBC case, there's no need to check for the tile size which is checked earlier by the caller. Signed-off-by: Loïc Molinari --- src/panfrost/lib/pan_desc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/panfrost/lib/pan_desc.c b/src/panfrost/lib/pan_desc.c index 4487f9da57c..15932d3269c 100644 --- a/src/panfrost/lib/pan_desc.c +++ b/src/panfrost/lib/pan_desc.c @@ -100,7 +100,7 @@ renderblock_fits_in_single_pass(const struct pan_image_view *view, uint64_t mod = pref.image->props.modifier; if (!drm_is_afbc(mod)) - return tile_size >= 16 * 16; + return true; struct pan_image_block_size renderblk_sz = pan_afbc_renderblock_size(mod); return tile_size >= renderblk_sz.width * renderblk_sz.height; @@ -123,7 +123,8 @@ GENX(pan_select_crc_rt)(const struct pan_fb_info *fb, unsigned tile_size) #if PAN_ARCH <= 6 if (fb->rt_count == 1 && fb->rts[0].view && !fb->rts[0].discard && - pan_image_view_has_crc(fb->rts[0].view)) + pan_image_view_has_crc(fb->rts[0].view) && + renderblock_fits_in_single_pass(fb->rts[0].view, tile_size)) return 0; return -1; @@ -133,10 +134,8 @@ GENX(pan_select_crc_rt)(const struct pan_fb_info *fb, unsigned tile_size) for (unsigned i = 0; i < fb->rt_count; i++) { if (!fb->rts[i].view || fb->rts[i].discard || - !pan_image_view_has_crc(fb->rts[i].view)) - continue; - - if (!renderblock_fits_in_single_pass(fb->rts[i].view, tile_size)) + !pan_image_view_has_crc(fb->rts[i].view) || + !renderblock_fits_in_single_pass(fb->rts[i].view, tile_size)) continue; bool valid = *(fb->rts[i].crc_valid);