diff options
author | James Jones <jajones@nvidia.com> | 2010-06-25 16:23:05 -0700 |
---|---|---|
committer | James Jones <jajones@nvidia.com> | 2010-12-03 16:49:23 -0800 |
commit | 4c2d0c0c09b249e61313830ee4e237b7f0619b87 (patch) | |
tree | 6786c8a42f4f20bd6be661bff050e615cd8f6afe | |
parent | 9e33a842c97d676afa21e4bb16fd3dd380b42f4f (diff) |
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>
-rw-r--r-- | include/X11/extensions/sync.h | 6 | ||||
-rw-r--r-- | src/XSync.c | 21 |
2 files changed, 27 insertions, 0 deletions
diff --git a/include/X11/extensions/sync.h b/include/X11/extensions/sync.h index 6a44ab9..a00d9c5 100644 --- a/include/X11/extensions/sync.h +++ b/include/X11/extensions/sync.h @@ -362,6 +362,12 @@ extern Bool XSyncQueryFence( Bool* /*triggered*/ ); +extern Bool XSyncAwaitFence( + Display* /*dpy*/, + const XSyncFence* /*fence_list*/, + int /*n_fences*/ +); + _XFUNCPROTOEND #endif /* _SYNC_SERVER */ 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 */ |