From 9058d5ff6252a1bf340453551613c4717cb87f6c Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Mon, 22 Apr 2024 14:06:46 +0200 Subject: [PATCH] panfrost: correct first-tracking for signature If we unconditionally assign false to first *before* we use it, it's never true when used. Instead, let's assign it *both* at the end *and* when continuing. Fixes: 4da88060d0a ("panfrost: Skip blit shader labelling if the buffer has no space") CID: 1476270 Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/lib/pan_blitter.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/panfrost/lib/pan_blitter.c b/src/panfrost/lib/pan_blitter.c index b8c885b3edb..8fcd11dc557 100644 --- a/src/panfrost/lib/pan_blitter.c +++ b/src/panfrost/lib/pan_blitter.c @@ -491,10 +491,11 @@ pan_blitter_get_blit_shader(struct pan_blitter_cache *cache, coord_comps = MAX2(coord_comps, (key->surfaces[i].dim ?: 3) + (key->surfaces[i].array ? 1 : 0)); - first = false; - if (sig_offset >= sizeof(sig)) + if (sig_offset >= sizeof(sig)) { + first = false; continue; + } sig_offset += snprintf(sig + sig_offset, sizeof(sig) - sig_offset, @@ -502,6 +503,8 @@ pan_blitter_get_blit_shader(struct pan_blitter_cache *cache, first ? "" : ",", gl_frag_result_name(key->surfaces[i].loc), type_str, dim_str, key->surfaces[i].array ? "[]" : "", key->surfaces[i].src_samples, key->surfaces[i].dst_samples); + + first = false; } nir_builder b = nir_builder_init_simple_shader(