From 791cb33da5f885f1bd9009d1979fb62a109bdda9 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sun, 2 Nov 2025 09:08:04 -0800 Subject: [PATCH] freedreno/a6xx: Pass cs to fd6_clear_lrz() Make it more obvious that all the clears go in the prologue. Signed-off-by: Rob Clark Part-of: --- src/gallium/drivers/freedreno/a6xx/fd6_blitter.cc | 4 +--- src/gallium/drivers/freedreno/a6xx/fd6_blitter.h | 2 +- src/gallium/drivers/freedreno/a6xx/fd6_gmem.cc | 6 +++--- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.cc b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.cc index d04bd3ce084..66b72c45604 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.cc @@ -823,11 +823,9 @@ clear_lrz_setup(fd_cs &cs, struct fd_resource *zsbuf, struct fd_bo *lrz, double template void -fd6_clear_lrz(struct fd_batch *batch, struct fd_resource *zsbuf, +fd6_clear_lrz(fd_cs &cs, struct fd_resource *zsbuf, struct fd_bo *lrz, double depth) { - fd_cs cs(fd_batch_get_prologue(batch)); - if (DEBUG_BLIT) { fprintf(stderr, "lrz clear:\ndst resource: "); util_dump_resource(stderr, &zsbuf->b.b); diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.h b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.h index 35be5565784..bcc7feb079d 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_blitter.h +++ b/src/gallium/drivers/freedreno/a6xx/fd6_blitter.h @@ -27,7 +27,7 @@ unsigned fd6_tile_mode(const struct pipe_resource *tmpl); */ template -void fd6_clear_lrz(struct fd_batch *batch, struct fd_resource *zsbuf, +void fd6_clear_lrz(fd_cs &cs, struct fd_resource *zsbuf, struct fd_bo *lrz, double depth) assert_dt; template void fd6_clear_surface(struct fd_context *ctx, fd_cs &cs, diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.cc b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.cc index 1ad2a78026f..a2a41ef7b1e 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.cc @@ -294,10 +294,10 @@ emit_lrz_clears(struct fd_batch *batch) subpass->fast_cleared &= ~FD_BUFFER_LRZ; + fd_cs cs(fd_batch_get_prologue(batch)); + /* prep before first clear: */ if (count == 0) { - fd_cs cs(fd_batch_get_prologue(batch)); - fd6_emit_ccu_cntl(cs, ctx->screen, false); fd_pkt7(cs, CP_SET_MARKER, 1) @@ -308,7 +308,7 @@ emit_lrz_clears(struct fd_batch *batch) fd6_set_rb_dbg_eco_mode(ctx, cs, true); } - fd6_clear_lrz(batch, zsbuf, subpass->lrz, subpass->clear_depth); + fd6_clear_lrz(cs, zsbuf, subpass->lrz, subpass->clear_depth); count++; }