From: Rob Clark Date: Thu, 1 Aug 2019 00:41:20 +0000 (-0700) Subject: freedreno/a5xx: call fd5_emit_ib() directly from fd5 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eb45422c5f5e3bd48608639c611638852ef87b9f;p=mesa.git freedreno/a5xx: call fd5_emit_ib() directly from fd5 Signed-off-by: Rob Clark --- diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_emit.c b/src/gallium/drivers/freedreno/a5xx/fd5_emit.c index 146a2951ff6..67ec23ebbbe 100644 --- a/src/gallium/drivers/freedreno/a5xx/fd5_emit.c +++ b/src/gallium/drivers/freedreno/a5xx/fd5_emit.c @@ -1099,20 +1099,6 @@ t7 opcode: CP_WAIT_FOR_IDLE (26) (1 dwords) OUT_RING(ring, 0x00000000); } -static void -fd5_emit_ib(struct fd_ringbuffer *ring, struct fd_ringbuffer *target) -{ - /* for debug after a lock up, write a unique counter value - * to scratch6 for each IB, to make it easier to match up - * register dumps to cmdstream. The combination of IB and - * DRAW (scratch7) is enough to "triangulate" the particular - * draw that caused lockup. - */ - emit_marker5(ring, 6); - __OUT_IB5(ring, target); - emit_marker5(ring, 6); -} - static void fd5_mem_to_mem(struct fd_ringbuffer *ring, struct pipe_resource *dst, unsigned dst_off, struct pipe_resource *src, unsigned src_off, diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_emit.h b/src/gallium/drivers/freedreno/a5xx/fd5_emit.h index af2bbc71573..70ac550fc1d 100644 --- a/src/gallium/drivers/freedreno/a5xx/fd5_emit.h +++ b/src/gallium/drivers/freedreno/a5xx/fd5_emit.h @@ -200,4 +200,18 @@ void fd5_emit_restore(struct fd_batch *batch, struct fd_ringbuffer *ring); void fd5_emit_init(struct pipe_context *pctx); +static inline void +fd5_emit_ib(struct fd_ringbuffer *ring, struct fd_ringbuffer *target) +{ + /* for debug after a lock up, write a unique counter value + * to scratch6 for each IB, to make it easier to match up + * register dumps to cmdstream. The combination of IB and + * DRAW (scratch7) is enough to "triangulate" the particular + * draw that caused lockup. + */ + emit_marker5(ring, 6); + __OUT_IB5(ring, target); + emit_marker5(ring, 6); +} + #endif /* FD5_EMIT_H */ diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_gmem.c b/src/gallium/drivers/freedreno/a5xx/fd5_gmem.c index c95acd66aef..df9e85a8f31 100644 --- a/src/gallium/drivers/freedreno/a5xx/fd5_gmem.c +++ b/src/gallium/drivers/freedreno/a5xx/fd5_gmem.c @@ -345,7 +345,7 @@ emit_binning_pass(struct fd_batch *batch) A5XX_RB_WINDOW_OFFSET_Y(0)); /* emit IB to binning drawcmds: */ - ctx->emit_ib(ring, batch->binning); + fd5_emit_ib(ring, batch->binning); fd_reset_wfi(batch); @@ -376,7 +376,7 @@ fd5_emit_tile_init(struct fd_batch *batch) fd5_emit_restore(batch, ring); if (batch->lrz_clear) - ctx->emit_ib(ring, batch->lrz_clear); + fd5_emit_ib(ring, batch->lrz_clear); fd5_emit_lrz_flush(ring);