Mesa (master): vc4: Fix vc4_fence_server_sync() on pre-syncobj kernels.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 8 00:02:52 UTC 2018


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Aug  7 12:15:03 2018 -0700

vc4: Fix vc4_fence_server_sync() on pre-syncobj kernels.

We won't have an FD if we're just having the server wait on a fence
created by eglCreateSyncKHR().  Our seqno fences will happen in order, so
server-side waits are no-ops in that case.  Fixes
dEQP-EGL.functional.sharing.gles2.multithread.simple_egl_server_sync.buffers.gen_delete

Fixes: b0acc3a5628c ("broadcom/vc4: Native fence fd support")

---

 src/gallium/drivers/vc4/vc4_fence.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/vc4/vc4_fence.c b/src/gallium/drivers/vc4/vc4_fence.c
index fac9df34d4..0dbfbe966b 100644
--- a/src/gallium/drivers/vc4/vc4_fence.c
+++ b/src/gallium/drivers/vc4/vc4_fence.c
@@ -121,7 +121,8 @@ vc4_fence_server_sync(struct pipe_context *pctx,
         struct vc4_context *vc4 = vc4_context(pctx);
         struct vc4_fence *fence = vc4_fence(pfence);
 
-        sync_accumulate("vc4", &vc4->in_fence_fd, fence->fd);
+        if (fence->fd >= 0)
+                sync_accumulate("vc4", &vc4->in_fence_fd, fence->fd);
 }
 
 static int




More information about the mesa-commit mailing list