summaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys
diff options
context:
space:
mode:
authorGurchetan Singh <[email protected]>2018-12-14 16:36:07 -0800
committerGurchetan Singh <[email protected]>2019-04-18 15:39:18 -0700
commitb5698562e4ae08dae5591abaa967b8eb27003e48 (patch)
treec96b0597fd6d6c892c3fcc7901afefdc3253ae55 /src/gallium/winsys
parent581ab2bc7003aff99cb861578826b6c0d5b343dc (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]>
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r--src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c5
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);