diff options
author | Marek Olšák <marek.olsak@amd.com> | 2014-04-20 00:53:32 +0200 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2014-04-25 01:33:12 +0200 |
commit | 0967970768c517c8c2f1a969e0a043982b4b1bf7 (patch) | |
tree | a581c4b4a12d2806db4f7246a72065845c64c671 /src | |
parent | 042e40f67b4cec0bc1d5d783bc3207a191bf433b (diff) | |
download | external_mesa3d-0967970768c517c8c2f1a969e0a043982b4b1bf7.zip external_mesa3d-0967970768c517c8c2f1a969e0a043982b4b1bf7.tar.gz external_mesa3d-0967970768c517c8c2f1a969e0a043982b4b1bf7.tar.bz2 |
r600g: fix buffer copying on R600-R700
This fixes broken rendering in DOTA 2.
Cc: 10.0 10.1 mesa-stable@lists.freedesktop.org
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/r600/r600_blit.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c index 98c07b5..1a2a911 100644 --- a/src/gallium/drivers/r600/r600_blit.c +++ b/src/gallium/drivers/r600/r600_blit.c @@ -500,6 +500,12 @@ static void r600_copy_buffer(struct pipe_context *ctx, struct pipe_resource *dst } else { util_resource_copy_region(ctx, dst, 0, dstx, 0, 0, src, 0, src_box); } + + /* The index buffer (VGT) doesn't seem to see the result of the copying. + * Can we somehow flush the index buffer cache? Starting a new IB seems + * to do the trick. */ + if (rctx->b.chip_class <= R700) + rctx->b.rings.gfx.flush(ctx, RADEON_FLUSH_ASYNC, NULL); } /** |