[Mesa-dev] [PATCH 09/13] r600g: fix buffer copying on R600-R700
Marek Olšák
maraeo at gmail.com
Sun Apr 20 18:59:30 PDT 2014
From: Marek Olšák <marek.olsak at amd.com>
This fixes broken rendering in DOTA 2.
Cc: 10.0 10.1 mesa-stable at lists.freedesktop.org
---
src/gallium/drivers/r600/r600_blit.c | 6 ++++++
1 file changed, 6 insertions(+)
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);
}
/**
--
1.8.3.2
More information about the mesa-dev
mailing list