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@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818>
This commit is contained in:
Rob Clark
2020-11-30 08:35:44 -08:00
committed by Marge Bot
parent 552dbd4470
commit 7a70f28de2
3 changed files with 20 additions and 6 deletions

View File

@@ -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

View File

@@ -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: */

View File

@@ -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)