diff options
author | Gurchetan Singh <[email protected]> | 2018-12-14 16:36:07 -0800 |
---|---|---|
committer | Gurchetan Singh <[email protected]> | 2019-04-18 15:39:18 -0700 |
commit | b5698562e4ae08dae5591abaa967b8eb27003e48 (patch) | |
tree | c96b0597fd6d6c892c3fcc7901afefdc3253ae55 | |
parent | 581ab2bc7003aff99cb861578826b6c0d5b343dc (diff) |
virgl/vtest: wait after issuing a transfer get
Otherwise, there's artifacts when running Unigine Valley with
protocol version 2.
We can get away with not waiting for most buffers, but let's
be conservative.
Signed-off-by: Gurchetan Singh <[email protected]>
Reviewed-By: Gert Wollny <[email protected]>
Reviewed-By: Piotr Rak <[email protected]>
-rw-r--r-- | src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c b/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c index 48f9c306a0e..687f4f30528 100644 --- a/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c +++ b/src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c @@ -113,6 +113,9 @@ virgl_vtest_transfer_get_internal(struct virgl_winsys *vws, level, stride, layer_stride, box, size, buf_offset); + if (flush_front_buffer || vtws->protocol_version >= 2) + virgl_vtest_busy_wait(vtws, res->res_handle, VCMD_BUSY_WAIT_FLAG_WAIT); + if (vtws->protocol_version >= 2) { if (flush_front_buffer) { if (box->depth > 1 || box->z > 1) { @@ -702,8 +705,6 @@ static void virgl_vtest_flush_frontbuffer(struct virgl_winsys *vws, box.depth = 1; } - virgl_vtest_busy_wait(vtws, res->res_handle, VCMD_BUSY_WAIT_FLAG_WAIT); - virgl_vtest_transfer_get_internal(vws, res, &box, res->stride, 0, offset, level, true); |