summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJames Jones <jajones@nvidia.com>2010-06-25 16:23:05 -0700
committerJames Jones <jajones@nvidia.com>2010-12-03 16:49:23 -0800
commit4c2d0c0c09b249e61313830ee4e237b7f0619b87 (patch)
tree6786c8a42f4f20bd6be661bff050e615cd8f6afe /src
parent9e33a842c97d676afa21e4bb16fd3dd380b42f4f (diff)
downloadxorg-lib-libXext-4c2d0c0c09b249e61313830ee4e237b7f0619b87.tar.gz
Add XSyncAwaitFence()
Add the XSynceFence version of XSyncAwait(). Waits for fence objects to reach the triggered state. Signed-off-by: James Jones <jajones@nvidia.com> Reviewed-by: Aaron Plattner <aplattner@nvidia.com> Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Diffstat (limited to 'src')
-rw-r--r--src/XSync.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/XSync.c b/src/XSync.c
index ca9a67c..2bdecfc 100644
--- a/src/XSync.c
+++ b/src/XSync.c
@@ -874,6 +874,27 @@ XSyncQueryFence(Display *dpy, XSyncFence fence, Bool *triggered)
return True;
}
+Bool
+XSyncAwaitFence(Display *dpy, const XSyncFence *fence_list, int n_fences)
+{
+ XExtDisplayInfo *info = find_display(dpy);
+ xSyncAwaitFenceReq *req;
+
+ SyncCheckExtension(dpy, info, False);
+
+ LockDisplay(dpy);
+ GetReq(SyncAwaitFence, req);
+ req->reqType = info->codes->major_opcode;
+ req->syncReqType = X_SyncAwaitFence;
+ SetReqLen(req, n_fences, n_fences);
+
+ Data32(dpy, (char *)fence_list, sizeof(CARD32) * n_fences);
+
+ UnlockDisplay(dpy);
+ SyncHandle();
+ return True;
+}
+
/*
* Functions corresponding to the macros for manipulating 64-bit values
*/