}
static void
-_e_explicit_sync_fd_move(int *dst, int *src)
+_e_explicit_sync_ec_acquire_fd_move(E_Client *ec, int *dst, int *src)
{
if (dst == src) return;
_e_explicit_sync_fd_set(dst, *src);
*src = -1;
+
+ e_client_explicit_sync_acquire_fence_fd_set(ec, *dst);
+}
+
+static void
+_e_explicit_sync_ec_acquire_fd_clear(E_Client *ec, int* fd)
+{
+ _e_explicit_sync_fd_set(fd, -1);
+ e_client_explicit_sync_acquire_fence_fd_set(ec, -1);
}
static void
goto fail;
}
- _e_explicit_sync_fd_set(&explicit_sync_surface->pending_acquire_fence_fd, fd);
+ _e_explicit_sync_ec_acquire_fd_move(explicit_sync_surface->ec,
+ &explicit_sync_surface->pending_acquire_fence_fd,
+ &fd);
EX_SYNC_TRACE("Explicit_Sync Surface:%p Set Acquire fence fd:%d",
explicit_sync_surface->ec, explicit_sync_surface, fd);
if (explicit_sync_surface->pending_acquire_fence_fd != -1)
{
if (explicit_sync_surface->acquire_fence_fd != -1)
- _e_explicit_sync_fd_clear(&explicit_sync_surface->acquire_fence_fd);
+ _e_explicit_sync_ec_acquire_fd_clear(ec, &explicit_sync_surface->acquire_fence_fd);
- _e_explicit_sync_fd_move(&explicit_sync_surface->acquire_fence_fd,
+ _e_explicit_sync_ec_acquire_fd_move(ec, &explicit_sync_surface->acquire_fence_fd,
&explicit_sync_surface->pending_acquire_fence_fd);
}
EX_SYNC_TRACE("Explicit_Sync Surface:%p Destroy", explicit_sync_surface->ec, explicit_sync_surface);
if (explicit_sync_surface->pending_acquire_fence_fd != -1)
- _e_explicit_sync_fd_clear(&explicit_sync_surface->pending_acquire_fence_fd);
+ _e_explicit_sync_ec_acquire_fd_clear(explicit_sync_surface->ec, &explicit_sync_surface->pending_acquire_fence_fd);
if (explicit_sync_surface->acquire_fence_fd != -1)
- _e_explicit_sync_fd_clear(&explicit_sync_surface->acquire_fence_fd);
+ _e_explicit_sync_ec_acquire_fd_clear(explicit_sync_surface->ec, &explicit_sync_surface->acquire_fence_fd);
if (explicit_sync_surface->ec)
{