From 5af87dabffe58f8256a1190a80c1e62fedc3c975 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 18 Mar 2015 15:18:28 +1000 Subject: virgl: flush if reading back tfb buffer. Since these can remain bound across cmd bufs, we should flush if we want to read it back. --- src/gallium/drivers/virgl/virgl_buffer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/virgl/virgl_buffer.c b/src/gallium/drivers/virgl/virgl_buffer.c index 82313918ae1..ac68a471cdc 100644 --- a/src/gallium/drivers/virgl/virgl_buffer.c +++ b/src/gallium/drivers/virgl/virgl_buffer.c @@ -33,6 +33,8 @@ static void *virgl_buffer_transfer_map(struct pipe_context *ctx, ctx->flush(ctx, NULL, 0); else if ((usage & PIPE_TRANSFER_READ) && (vbuf->on_list == TRUE)) ctx->flush(ctx, NULL, 0); + else if ((usage & PIPE_TRANSFER_READ) && (resource->bind == PIPE_BIND_STREAM_OUTPUT)) + ctx->flush(ctx, NULL, 0); trans = util_slab_alloc(&vctx->texture_transfer_pool); if (trans == NULL) -- cgit v1.2.3