freedreno/a5xx: call fd5_emit_ib() directly from fd5

Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
Rob Clark 2019-07-31 17:41:20 -07:00
parent 50e15e1c6f
commit eb45422c5f
3 changed files with 16 additions and 16 deletions

View file

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

View file

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

View file

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