summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2014-02-26 12:00:56 +1000
committerDave Airlie <airlied@gmail.com>2014-02-27 09:19:08 +1000
commita31d79e5c52a0d7ffec764fa6cb0218bd5dcc03b (patch)
treecaf497cfcb0280d8ace7c6007acf34341edf9be0
parentc6650fb081b0a82b2b00aaa00f1854be0f9fbb1f (diff)
fix flushing for read on mapped buffer
-rw-r--r--src/gallium/drivers/virgl/virgl_buffer.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/virgl/virgl_buffer.c b/src/gallium/drivers/virgl/virgl_buffer.c
index c0817f32b45..c40ddac1d40 100644
--- a/src/gallium/drivers/virgl/virgl_buffer.c
+++ b/src/gallium/drivers/virgl/virgl_buffer.c
@@ -31,6 +31,8 @@ static void *virgl_buffer_transfer_map(struct pipe_context *ctx,
if ((!(usage & PIPE_TRANSFER_UNSYNCHRONIZED)) && vs->vws->res_is_referenced(vs->vws, grctx->cbuf, vbuf->base.hw_res))
ctx->flush(ctx, NULL, 0);
+ else if ((usage & PIPE_TRANSFER_READ) && (vbuf->on_list == TRUE))
+ ctx->flush(ctx, NULL, 0);
trans = util_slab_alloc(&grctx->texture_transfer_pool);
if (trans == NULL)