virgl: wait after a flush
[mesa.git] / src / gallium / drivers / virgl / virgl_buffer.c
index 7081c090814242d1cdce6f9f52fbd3e3aac45ca8..fd00b1748c44b46c9a4b28eca3025c790f871a68 100644 (file)
@@ -53,12 +53,12 @@ static void *virgl_buffer_transfer_map(struct pipe_context *ctx,
       ctx->flush(ctx, NULL, 0);
 
    readback = virgl_res_needs_readback(vctx, vbuf, usage, 0);
-   if (readback) {
+   if (readback)
       vs->vws->transfer_get(vs->vws, vbuf->hw_res, box, trans->base.stride,
                             trans->l_stride, trans->offset, level);
 
+   if (readback || flush)
       vs->vws->resource_wait(vs->vws, vbuf->hw_res);
-   }
 
    ptr = vs->vws->resource_map(vs->vws, vbuf->hw_res);
    if (!ptr) {