OSDN Git Service

radeonsi: don't send data after write-confirm with BOTTOM_OF_PIPE_TS
authorMarek Olšák <marek.olsak@amd.com>
Tue, 13 Nov 2018 21:16:51 +0000 (16:16 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 21 Nov 2018 02:18:46 +0000 (21:18 -0500)
There are no writes.

Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/radeonsi/si_fence.c
src/gallium/drivers/radeonsi/si_perfcounter.c
src/gallium/drivers/radeonsi/si_query.c

index 3f22ee3..d385f44 100644 (file)
@@ -277,8 +277,7 @@ static void si_fine_fence_set(struct si_context *ctx,
        } else if (flags & PIPE_FLUSH_BOTTOM_OF_PIPE) {
                si_cp_release_mem(ctx,
                                  V_028A90_BOTTOM_OF_PIPE_TS, 0,
-                                 EOP_DST_SEL_MEM,
-                                 EOP_INT_SEL_SEND_DATA_AFTER_WR_CONFIRM,
+                                 EOP_DST_SEL_MEM, EOP_INT_SEL_NONE,
                                  EOP_DATA_SEL_VALUE_32BIT,
                                  NULL, fence_va, 0x80000000,
                                  PIPE_QUERY_GPU_FINISHED);
index 2ca6d2d..cea7d57 100644 (file)
@@ -581,8 +581,7 @@ static void si_pc_emit_stop(struct si_context *sctx,
        struct radeon_cmdbuf *cs = sctx->gfx_cs;
 
        si_cp_release_mem(sctx, V_028A90_BOTTOM_OF_PIPE_TS, 0,
-                         EOP_DST_SEL_MEM,
-                         EOP_INT_SEL_SEND_DATA_AFTER_WR_CONFIRM,
+                         EOP_DST_SEL_MEM, EOP_INT_SEL_NONE,
                          EOP_DATA_SEL_VALUE_32BIT,
                          buffer, va, 0, SI_NOT_QUERY);
        si_cp_wait_mem(sctx, va, 0, 0xffffffff, 0);
index 9b09c74..21b9aee 100644 (file)
@@ -890,9 +890,8 @@ static void si_query_hw_do_emit_stop(struct si_context *sctx,
                va += 8;
                /* fall through */
        case PIPE_QUERY_TIMESTAMP:
-               si_cp_release_mem(sctx, V_028A90_BOTTOM_OF_PIPE_TS,
-                                 0, EOP_DST_SEL_MEM,
-                                 EOP_INT_SEL_SEND_DATA_AFTER_WR_CONFIRM,
+               si_cp_release_mem(sctx, V_028A90_BOTTOM_OF_PIPE_TS, 0,
+                                 EOP_DST_SEL_MEM, EOP_INT_SEL_NONE,
                                  EOP_DATA_SEL_TIMESTAMP, NULL, va,
                                  0, query->b.type);
                fence_va = va + 8;
@@ -917,8 +916,7 @@ static void si_query_hw_do_emit_stop(struct si_context *sctx,
 
        if (fence_va) {
                si_cp_release_mem(sctx, V_028A90_BOTTOM_OF_PIPE_TS, 0,
-                                 EOP_DST_SEL_MEM,
-                                 EOP_INT_SEL_SEND_DATA_AFTER_WR_CONFIRM,
+                                 EOP_DST_SEL_MEM, EOP_INT_SEL_NONE,
                                  EOP_DATA_SEL_VALUE_32BIT,
                                  query->buffer.buf, fence_va, 0x80000000,
                                  query->b.type);