freedreno/a6xx: Skip empty tile_setup
authorRob Clark <robdclark@chromium.org>
Wed, 9 Sep 2020 16:08:02 +0000 (09:08 -0700)
committerMarge Bot <eric+marge@anholt.net>
Thu, 10 Sep 2020 02:36:59 +0000 (02:36 +0000)
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6649>

src/gallium/drivers/freedreno/a6xx/fd6_gmem.c

index b8c289e..068bf93 100644 (file)
@@ -1110,6 +1110,9 @@ emit_restore_blits(struct fd_batch *batch, struct fd_ringbuffer *ring)
 static void
 prepare_tile_setup_ib(struct fd_batch *batch)
 {
+       if (!(batch->restore || batch->fast_cleared))
+               return;
+
        batch->tile_setup = fd_submit_new_ringbuffer(batch->submit, 0x1000,
                        FD_RINGBUFFER_STREAMING);
 
@@ -1131,6 +1134,9 @@ fd6_emit_tile_mem2gmem(struct fd_batch *batch, const struct fd_tile *tile)
 static void
 fd6_emit_tile_renderprep(struct fd_batch *batch, const struct fd_tile *tile)
 {
+       if (!batch->tile_setup)
+               return;
+
        fd_log(batch, "TILE: START CLEAR/RESTORE");
        if (batch->fast_cleared || !use_hw_binning(batch)) {
                fd6_emit_ib(batch->gmem, batch->tile_setup);