From: Gurchetan Singh Date: Sat, 15 Dec 2018 00:36:07 +0000 (-0800) Subject: virgl/vtest: wait after issuing a transfer get X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b5698562e4ae08dae5591abaa967b8eb27003e48;p=mesa.git 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 --- 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);