Home | History | Annotate | Download | only in main

Lines Matching refs:syncObj

25  * \file syncobj.c
68 #include "syncobj.h"
82 _mesa_delete_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj)
85 free(syncObj);
90 _mesa_fence_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
97 syncObj->StatusFlag = 1;
102 _mesa_check_sync(struct gl_context *ctx, struct gl_sync_object *syncObj)
105 (void) syncObj;
114 _mesa_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
118 (void) syncObj;
177 _mesa_validate_sync(struct gl_sync_object *syncObj)
179 return (syncObj != NULL)
180 && (syncObj->Type == GL_SYNC_FENCE)
181 && !syncObj->DeletePending;
186 _mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj)
189 syncObj->RefCount++;
195 _mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj)
198 syncObj->RefCount--;
199 if (syncObj->RefCount == 0) {
200 remove_from_list(& syncObj->link);
203 ctx->Driver.DeleteSyncObject(ctx, syncObj);
214 struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
217 return _mesa_validate_sync(syncObj) ? GL_TRUE : GL_FALSE;
225 struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
238 if (!_mesa_validate_sync(syncObj)) {
246 syncObj->DeletePending = GL_TRUE;
247 _mesa_unref_sync_object(ctx, syncObj);
255 struct gl_sync_object *syncObj;
270 syncObj = ctx->Driver.NewSyncObject(ctx, GL_SYNC_FENCE);
271 if (syncObj != NULL) {
272 syncObj->Type = GL_SYNC_FENCE;
278 syncObj->Name = 1;
279 syncObj->RefCount = 1;
280 syncObj->DeletePending = GL_FALSE;
281 syncObj->SyncCondition = condition;
282 syncObj->Flags = flags;
283 syncObj->StatusFlag = 0;
285 ctx->Driver.FenceSync(ctx, syncObj, condition, flags);
288 insert_at_tail(& ctx->Shared->SyncObjects, & syncObj->link);
291 return (GLsync) syncObj;
302 struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
306 if (!_mesa_validate_sync(syncObj)) {
316 _mesa_ref_sync_object(ctx, syncObj);
325 ctx->Driver.CheckSync(ctx, syncObj);
326 if (syncObj->StatusFlag) {
332 ctx->Driver.ClientWaitSync(ctx, syncObj, flags, timeout);
334 ret = syncObj->StatusFlag ? GL_CONDITION_SATISFIED : GL_TIMEOUT_EXPIRED;
338 _mesa_unref_sync_object(ctx, syncObj);
347 struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
350 if (!_mesa_validate_sync(syncObj)) {
368 ctx->Driver.ServerWaitSync(ctx, syncObj, flags, timeout);
377 struct gl_sync_object *const syncObj = (struct gl_sync_object *) sync;
382 if (!_mesa_validate_sync(syncObj)) {
389 v[0] = syncObj->Type;
394 v[0] = syncObj->SyncCondition;
403 ctx->Driver.CheckSync(ctx, syncObj);
405 v[0] = (syncObj->StatusFlag) ? GL_SIGNALED : GL_UNSIGNALED;
410 v[0] = syncObj->Flags;