Mesa (master): virgl/vtest: wait after issuing a transfer get

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Apr 18 22:45:17 UTC 2019


Module: Mesa
Branch: master
Commit: b5698562e4ae08dae5591abaa967b8eb27003e48
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5698562e4ae08dae5591abaa967b8eb27003e48

Author: Gurchetan Singh <gurchetansingh at chromium.org>
Date:   Fri Dec 14 16:36:07 2018 -0800

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 <gurchetansingh at chromium.org>
Reviewed-By: Gert Wollny <gert.wollny at collabora.com>
Reviewed-By: Piotr Rak <p.rak at samsung.com>

---

 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);
 




More information about the mesa-commit mailing list