freedreno/a6xx: Use fd6_emit_ib from a6xx
Move it to a header and use it where possible to avoid vfunc call. Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org>
This commit is contained in:
committed by
Rob Clark
parent
f3cc0d2747
commit
4fd6265f42
@@ -1195,14 +1195,6 @@ t7 opcode: CP_WAIT_FOR_IDLE (26) (1 dwords)
|
||||
OUT_RING(ring, 0x00000000);
|
||||
}
|
||||
|
||||
static void
|
||||
fd6_emit_ib(struct fd_ringbuffer *ring, struct fd_ringbuffer *target)
|
||||
{
|
||||
emit_marker6(ring, 6);
|
||||
__OUT_IB5(ring, target);
|
||||
emit_marker6(ring, 6);
|
||||
}
|
||||
|
||||
static void
|
||||
fd6_mem_to_mem(struct fd_ringbuffer *ring, struct pipe_resource *dst,
|
||||
unsigned dst_off, struct pipe_resource *src, unsigned src_off,
|
||||
|
||||
@@ -183,6 +183,14 @@ void fd6_emit_restore(struct fd_batch *batch, struct fd_ringbuffer *ring);
|
||||
|
||||
void fd6_emit_init(struct pipe_context *pctx);
|
||||
|
||||
static inline void
|
||||
fd6_emit_ib(struct fd_ringbuffer *ring, struct fd_ringbuffer *target)
|
||||
{
|
||||
emit_marker6(ring, 6);
|
||||
__OUT_IB5(ring, target);
|
||||
emit_marker6(ring, 6);
|
||||
}
|
||||
|
||||
#define WRITE(reg, val) do { \
|
||||
OUT_PKT4(ring, reg, 1); \
|
||||
OUT_RING(ring, val); \
|
||||
|
||||
@@ -408,7 +408,7 @@ emit_binning_pass(struct fd_batch *batch)
|
||||
A6XX_SP_TP_WINDOW_OFFSET_Y(0));
|
||||
|
||||
/* emit IB to binning drawcmds: */
|
||||
ctx->emit_ib(ring, batch->draw);
|
||||
fd6_emit_ib(ring, batch->draw);
|
||||
|
||||
fd_reset_wfi(batch);
|
||||
|
||||
@@ -464,7 +464,7 @@ fd6_emit_tile_init(struct fd_batch *batch)
|
||||
fd6_emit_lrz_flush(ring);
|
||||
|
||||
if (batch->lrz_clear)
|
||||
ctx->emit_ib(ring, batch->lrz_clear);
|
||||
fd6_emit_ib(ring, batch->lrz_clear);
|
||||
|
||||
fd6_cache_flush(batch, ring);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user