summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_transfer.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2010-02-23 01:14:44 +0100
committerMarek Olšák <[email protected]>2010-03-07 16:24:17 +0100
commit6b39abb63acba34f0f4f017f06b0c90da79e6e70 (patch)
treec068fe86e0dcce5b84d74ca4dc784e88c5156688 /src/gallium/drivers/r300/r300_transfer.c
parent57a1395ec3f8eb01af6cfea3fd6b5903dcc61720 (diff)
r300g: fix DRM errors
Diffstat (limited to 'src/gallium/drivers/r300/r300_transfer.c')
-rw-r--r--src/gallium/drivers/r300/r300_transfer.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_transfer.c b/src/gallium/drivers/r300/r300_transfer.c
index 56a6976e8b6..ec89681a3c0 100644
--- a/src/gallium/drivers/r300/r300_transfer.c
+++ b/src/gallium/drivers/r300/r300_transfer.c
@@ -102,10 +102,15 @@ static void r300_copy_into_tiled_texture(struct pipe_context *ctx,
PIPE_BUFFER_USAGE_GPU_WRITE |
PIPE_BUFFER_USAGE_PIXEL);
+ /* XXX this flush prevents the following DRM error from occuring:
+ * [drm:radeon_cs_ioctl] *ERROR* Failed to parse relocation !
+ * Reproducible with perf/copytex. */
+ ctx->flush(ctx, 0, NULL);
+
ctx->surface_copy(ctx, dst, r300transfer->x, r300transfer->y, src, 0, 0,
transfer->width, transfer->height);
- /* XXX this flush fixes lots of regressions, not sure why */
+ /* XXX this flush fixes a few piglit tests (e.g. glean/pixelFormats). */
ctx->flush(ctx, 0, NULL);
pipe_surface_reference(&src, NULL);