radeonsi: fix the top-of-pipe fence on SI
authorMarek Olšák <marek.olsak@amd.com>
Thu, 17 Jan 2019 19:45:10 +0000 (14:45 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 22 Jan 2019 17:14:26 +0000 (12:14 -0500)
SI doesn't have MEM.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/gallium/drivers/radeonsi/si_fence.c

index be394119af631a52a8f000e72ff77e6010038f0c..46d0289c90b1894f13fccb8127713a339af5c9fc 100644 (file)
@@ -266,7 +266,8 @@ static void si_fine_fence_set(struct si_context *ctx,
        if (flags & PIPE_FLUSH_TOP_OF_PIPE) {
                struct radeon_cmdbuf *cs = ctx->gfx_cs;
                radeon_emit(cs, PKT3(PKT3_WRITE_DATA, 3, 0));
-               radeon_emit(cs, S_370_DST_SEL(V_370_MEM) |
+               radeon_emit(cs, S_370_DST_SEL(ctx->chip_class >= CIK ? V_370_MEM
+                                                                    : V_370_MEM_GRBM) |
                        S_370_WR_CONFIRM(1) |
                        S_370_ENGINE_SEL(V_370_PFP));
                radeon_emit(cs, fence_va);