Mesa (master): freedreno: Don't emit log/trace points in gmem for nondraw

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Dec 3 21:40:22 UTC 2020


Module: Mesa
Branch: master
Commit: 7a70f28de2b547f393b6a10079a0123ad335f0ba
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7a70f28de2b547f393b6a10079a0123ad335f0ba

Author: Rob Clark <robdclark at chromium.org>
Date:   Mon Nov 30 08:35:44 2020 -0800

freedreno: Don't emit log/trace points in gmem for nondraw

For blit/compute non-draw batches, we are already emitting traces in the
draw cmdstream, which means we cannot also have traces in the GMEM ring
(as that breaks the FIFO ordering of traces)

Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818>

---

 src/gallium/drivers/freedreno/a6xx/fd6_emit.c  |  8 ++++++--
 src/gallium/drivers/freedreno/a6xx/fd6_gmem.c  |  8 ++++++--
 src/gallium/drivers/freedreno/freedreno_gmem.c | 10 ++++++++--
 3 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c
index f04c84f2038..59ab1f45274 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c
@@ -1174,7 +1174,9 @@ fd6_emit_restore(struct fd_batch *batch, struct fd_ringbuffer *ring)
 {
 	//struct fd_context *ctx = batch->ctx;
 
-	fd_log(batch, "START RESTORE");
+	if (!batch->nondraw) {
+		fd_log(batch, "START RESTORE");
+	}
 
 	fd6_cache_inv(batch, ring);
 
@@ -1290,7 +1292,9 @@ fd6_emit_restore(struct fd_batch *batch, struct fd_ringbuffer *ring)
 	OUT_PKT4(ring, REG_A6XX_RB_LRZ_CNTL, 1);
 	OUT_RING(ring, 0x00000000);
 
-	fd_log(batch, "END RESTORE");
+	if (!batch->nondraw) {
+		fd_log(batch, "END RESTORE");
+	}
 }
 
 static void
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
index 0c1348ca4b5..9f1a1ecfef3 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c
@@ -1354,9 +1354,13 @@ fd6_emit_sysmem_prep(struct fd_batch *batch)
 	fd6_emit_lrz_flush(ring);
 
 	if (batch->prologue) {
-		fd_log(batch, "START PROLOGUE");
+		if (!batch->nondraw) {
+			fd_log(batch, "START PROLOGUE");
+		}
 		fd6_emit_ib(ring, batch->prologue);
-		fd_log(batch, "END PROLOGUE");
+		if (!batch->nondraw) {
+			fd_log(batch, "END PROLOGUE");
+		}
 	}
 
 	/* remaining setup below here does not apply to blit/compute: */
diff --git a/src/gallium/drivers/freedreno/freedreno_gmem.c b/src/gallium/drivers/freedreno/freedreno_gmem.c
index 663d61a7da8..b2031cba0ea 100644
--- a/src/gallium/drivers/freedreno/freedreno_gmem.c
+++ b/src/gallium/drivers/freedreno/freedreno_gmem.c
@@ -632,10 +632,16 @@ render_sysmem(struct fd_batch *batch)
 	if (ctx->query_prepare_tile)
 		ctx->query_prepare_tile(batch, 0, batch->gmem);
 
+	if (!batch->nondraw) {
+		fd_log(batch, "SYSMEM: START DRAW IB");
+	}
 	/* emit IB to drawcmds: */
-	fd_log(batch, "SYSMEM: START DRAW IB");
 	ctx->screen->emit_ib(batch->gmem, batch->draw);
-	fd_log(batch, "SYSMEM: END DRAW IB");
+
+	if (!batch->nondraw) {
+		fd_log(batch, "SYSMEM: END DRAW IB");
+	}
+
 	fd_reset_wfi(batch);
 
 	if (ctx->emit_sysmem_fini)



More information about the mesa-commit mailing list