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;
if (!batch->nondraw) {
fd_log(batch, "START RESTORE");
}
fd6_cache_inv(batch, ring);
@@ -1290,8 +1292,10 @@ fd6_emit_restore(struct fd_batch *batch, struct fd_ringbuffer *ring)
OUT_PKT4(ring, REG_A6XX_RB_LRZ_CNTL, 1);
OUT_RING(ring, 0x00000000);
if (!batch->nondraw) {
fd_log(batch, "END RESTORE");
}
}
static void
fd6_mem_to_mem(struct fd_ringbuffer *ring, struct pipe_resource *dst,

View File

@@ -1354,10 +1354,14 @@ fd6_emit_sysmem_prep(struct fd_batch *batch)
fd6_emit_lrz_flush(ring);
if (batch->prologue) {
if (!batch->nondraw) {
fd_log(batch, "START PROLOGUE");
}
fd6_emit_ib(ring, batch->prologue);
if (!batch->nondraw) {
fd_log(batch, "END PROLOGUE");
}
}
/* remaining setup below here does not apply to blit/compute: */
if (batch->nondraw)

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);
/* emit IB to drawcmds: */
if (!batch->nondraw) {
fd_log(batch, "SYSMEM: START DRAW IB");
}
/* emit IB to drawcmds: */
ctx->screen->emit_ib(batch->gmem, batch->draw);
if (!batch->nondraw) {
fd_log(batch, "SYSMEM: END DRAW IB");
}
fd_reset_wfi(batch);
if (ctx->emit_sysmem_fini)