diff --git a/src/gallium/drivers/etnaviv/etnaviv_blt.c b/src/gallium/drivers/etnaviv/etnaviv_blt.c index 29fbe4d7ef8..18f171eeda6 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_blt.c +++ b/src/gallium/drivers/etnaviv/etnaviv_blt.c @@ -142,6 +142,9 @@ emit_blt_clearimage(struct etna_cmd_stream *stream, const struct blt_clear_op *o etna_set_state(stream, VIVS_BLT_COMMAND, VIVS_BLT_COMMAND_COMMAND_CLEAR_IMAGE); etna_set_state(stream, VIVS_BLT_SET_COMMAND, 0x00000003); etna_set_state(stream, VIVS_BLT_ENABLE, 0x00000000); + + if (DBG_ENABLED(ETNA_DBG_DRAW_STALL)) + etna_stall(stream, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE); } /* Copy (a subset of) an image to another image. */ @@ -187,6 +190,9 @@ emit_blt_copyimage(struct etna_cmd_stream *stream, const struct blt_imgcopy_op * etna_set_state(stream, VIVS_BLT_COMMAND, VIVS_BLT_COMMAND_COMMAND_COPY_IMAGE); etna_set_state(stream, VIVS_BLT_SET_COMMAND, 0x00000003); etna_set_state(stream, VIVS_BLT_ENABLE, 0x00000000); + + if (DBG_ENABLED(ETNA_DBG_DRAW_STALL)) + etna_stall(stream, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE); } /* Emit in-place resolve using BLT. */ @@ -209,6 +215,9 @@ emit_blt_inplace(struct etna_cmd_stream *stream, const struct blt_inplace_op *op etna_set_state(stream, VIVS_BLT_COMMAND, 0x00000004); etna_set_state(stream, VIVS_BLT_SET_COMMAND, 0x00000003); etna_set_state(stream, VIVS_BLT_ENABLE, 0x00000000); + + if (DBG_ENABLED(ETNA_DBG_DRAW_STALL)) + etna_stall(stream, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE); } static void diff --git a/src/gallium/drivers/etnaviv/etnaviv_rs.c b/src/gallium/drivers/etnaviv/etnaviv_rs.c index ffb8a17f5b2..e20ec1d327f 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_rs.c +++ b/src/gallium/drivers/etnaviv/etnaviv_rs.c @@ -277,6 +277,9 @@ etna_submit_rs_state(struct etna_context *ctx, /*20/21*/ EMIT_STATE(RS_KICKER, 0xbeebbeeb); etna_coalesce_end(stream, &coalesce); } + + if (DBG_ENABLED(ETNA_DBG_DRAW_STALL)) + etna_stall(stream, SYNC_RECIPIENT_FE, SYNC_RECIPIENT_PE); } /* Generate clear command for a surface (non-fast clear case) */