浏览代码

radeonsi: don't flush sL1 conditionally in WAIT_ON_CE_COUNTER

I don't know the condition for the flush, but we better turn this off.
The sL1 flush is used when CE dumps stuff into a ring buffer and the ring
buffer wraps.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
tags/17.3-branchpoint
Marek Olšák 8 年前
父节点
当前提交
404f524fe2
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3
    3
      src/gallium/drivers/radeonsi/si_state_draw.c

+ 3
- 3
src/gallium/drivers/radeonsi/si_state_draw.c 查看文件

@@ -1145,10 +1145,10 @@ void si_ce_pre_draw_synchronization(struct si_context *sctx)
{
if (sctx->ce_need_synchronization) {
radeon_emit(sctx->ce_ib, PKT3(PKT3_INCREMENT_CE_COUNTER, 0, 0));
radeon_emit(sctx->ce_ib, 1);
radeon_emit(sctx->ce_ib, 1); /* 1 = increment CE counter */

radeon_emit(sctx->b.gfx.cs, PKT3(PKT3_WAIT_ON_CE_COUNTER, 0, 0));
radeon_emit(sctx->b.gfx.cs, 1);
radeon_emit(sctx->b.gfx.cs, 0); /* 0 = don't flush sL1 conditionally */
}
}

@@ -1156,7 +1156,7 @@ void si_ce_post_draw_synchronization(struct si_context *sctx)
{
if (sctx->ce_need_synchronization) {
radeon_emit(sctx->b.gfx.cs, PKT3(PKT3_INCREMENT_DE_COUNTER, 0, 0));
radeon_emit(sctx->b.gfx.cs, 0);
radeon_emit(sctx->b.gfx.cs, 0); /* unused */

sctx->ce_need_synchronization = false;
}

正在加载...
取消
保存