diff options
author | Marek Olšák <[email protected]> | 2016-04-26 19:29:55 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2016-05-10 17:20:09 +0200 |
commit | a512da36aed3a1c893b34681dec2dfd51d250ee5 (patch) | |
tree | c75c1df6ae8562356ffff061f21fefffc2ebed04 /src/gallium/drivers/radeonsi | |
parent | f837c37f022ecf4925a574961027eb12f125e66c (diff) |
gallium/radeon: fix (S)DMA read-after-write hazards
Reviewed-by: Alex Deucher <[email protected]>
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi')
-rw-r--r-- | src/gallium/drivers/radeonsi/cik_sdma.c | 1 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_dma.c | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/cik_sdma.c b/src/gallium/drivers/radeonsi/cik_sdma.c index 88a994ee390..5021578871b 100644 --- a/src/gallium/drivers/radeonsi/cik_sdma.c +++ b/src/gallium/drivers/radeonsi/cik_sdma.c @@ -87,6 +87,7 @@ static void cik_sdma_copy_buffer(struct si_context *ctx, dst_offset + size); cik_sdma_do_copy_buffer(ctx, dst, src, dst_offset, src_offset, size); + r600_dma_emit_wait_idle(&ctx->b); } static void cik_sdma_copy(struct pipe_context *ctx, diff --git a/src/gallium/drivers/radeonsi/si_dma.c b/src/gallium/drivers/radeonsi/si_dma.c index 033eb7b1479..03321f583a5 100644 --- a/src/gallium/drivers/radeonsi/si_dma.c +++ b/src/gallium/drivers/radeonsi/si_dma.c @@ -82,6 +82,7 @@ static void si_dma_copy_buffer(struct si_context *ctx, src_offset += csize << shift; size -= csize; } + r600_dma_emit_wait_idle(&ctx->b); } static void si_dma_copy_tile(struct si_context *ctx, @@ -188,6 +189,7 @@ static void si_dma_copy_tile(struct si_context *ctx, addr += cheight * pitch; tiled_y += cheight; } + r600_dma_emit_wait_idle(&ctx->b); } static void si_dma_copy(struct pipe_context *ctx, |