From d5bd00dba8a19e7f05273f7b76edae40baf6168f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Molinari?= Date: Wed, 25 Mar 2026 17:34:14 +0100 Subject: [PATCH] panfrost: Test render cond in legalized blit func MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a note to the blit supported check for the S8_UINT format that's specially handled by Panfrost. Signed-off-by: Loïc Molinari Reviewed-by: Ashley Smith Acked-by: Boris Brezillon Part-of: --- src/gallium/drivers/panfrost/pan_blitter.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_blitter.c b/src/gallium/drivers/panfrost/pan_blitter.c index ef8407d2176..c60da7707dc 100644 --- a/src/gallium/drivers/panfrost/pan_blitter.c +++ b/src/gallium/drivers/panfrost/pan_blitter.c @@ -159,6 +159,9 @@ panfrost_blitter_blit_legalized(struct pipe_context *pipe, struct panfrost_context *ctx = pan_context(pipe); + if (info->render_condition_enable && !panfrost_render_condition_check(ctx)) + return; + panfrost_blitter_save(ctx, info->render_condition_enable ? PAN_RENDER_BLIT_COND : PAN_RENDER_BLIT); @@ -173,9 +176,14 @@ panfrost_blitter_blit(struct pipe_context *pipe, struct panfrost_context *ctx = pan_context(pipe); - if (info->render_condition_enable && !panfrost_render_condition_check(ctx)) - return; - + /* Direct calls from the driver to panfrost_blitter_blit_legalized() are + * expected to be supported so this check is only done for external blits. + * + * XXX This check fails when the dest format is PIPE_FORMAT_S8_UINT because + * of a workaround for this format in panfrost_is_format_supported(). It + * can be triggered when the check is moved to the legalized blit func with + * dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth32f_stencil8_2d. + */ if (!util_blitter_is_blit_supported(ctx->blitter, info)) UNREACHABLE("Unsupported blit\n");