From b5698562e4ae08dae5591abaa967b8eb27003e48 Mon Sep 17 00:00:00 2001 From: Gurchetan Singh Date: Fri, 14 Dec 2018 16:36:07 -0800 Subject: [PATCH] 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 Reviewed-By: Gert Wollny Reviewed-By: Piotr Rak --- src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c | 5 +++-- 1 file 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); -- 2.30.2