Lines Matching defs:syncObj
82 _mesa_delete_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj)
85 free(syncObj->Label);
86 free(syncObj);
91 _mesa_fence_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
98 syncObj->StatusFlag = 1;
103 _mesa_check_sync(struct gl_context *ctx, struct gl_sync_object *syncObj)
106 (void) syncObj;
115 _mesa_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
119 (void) syncObj;
179 struct gl_sync_object *syncObj = (struct gl_sync_object *) sync;
181 if (syncObj != NULL
182 && _mesa_set_search(ctx->Shared->SyncObjects, syncObj) != NULL
183 && !syncObj->DeletePending) {
185 syncObj->RefCount++;
188 syncObj = NULL;
191 return syncObj;
196 _mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj,
202 syncObj->RefCount -= amount;
203 if (syncObj->RefCount == 0) {
204 entry = _mesa_set_search(ctx->Shared->SyncObjects, syncObj);
209 ctx->Driver.DeleteSyncObject(ctx, syncObj);
229 struct gl_sync_object *syncObj;
241 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
242 if (!no_error && !syncObj) {
253 syncObj->DeletePending = GL_TRUE;
254 _mesa_unref_sync_object(ctx, syncObj, 2);
277 struct gl_sync_object *syncObj;
279 syncObj = ctx->Driver.NewSyncObject(ctx);
280 if (syncObj != NULL) {
286 syncObj->Name = 1;
287 syncObj->RefCount = 1;
288 syncObj->DeletePending = GL_FALSE;
289 syncObj->SyncCondition = condition;
290 syncObj->Flags = flags;
291 syncObj->StatusFlag = 0;
293 ctx->Driver.FenceSync(ctx, syncObj, condition, flags);
296 _mesa_set_add(ctx->Shared->SyncObjects, syncObj);
299 return (GLsync)syncObj;
336 client_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
348 ctx->Driver.CheckSync(ctx, syncObj);
349 if (syncObj->StatusFlag) {
355 ctx->Driver.ClientWaitSync(ctx, syncObj, flags, timeout);
357 ret = syncObj->StatusFlag
362 _mesa_unref_sync_object(ctx, syncObj, 1);
372 struct gl_sync_object *syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
373 return client_wait_sync(ctx, syncObj, flags, timeout);
381 struct gl_sync_object *syncObj;
390 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
391 if (!syncObj) {
397 return client_wait_sync(ctx, syncObj, flags, timeout);
402 wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
405 ctx->Driver.ServerWaitSync(ctx, syncObj, flags, timeout);
406 _mesa_unref_sync_object(ctx, syncObj, 1);
415 struct gl_sync_object *syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
416 wait_sync(ctx, syncObj, flags, timeout);
424 struct gl_sync_object *syncObj;
437 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
438 if (!syncObj) {
444 wait_sync(ctx, syncObj, flags, timeout);
453 struct gl_sync_object *syncObj;
457 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
458 if (!syncObj) {
471 v[0] = syncObj->SyncCondition;
480 ctx->Driver.CheckSync(ctx, syncObj);
482 v[0] = (syncObj->StatusFlag) ? GL_SIGNALED : GL_UNSIGNALED;
487 v[0] = syncObj->Flags;
493 _mesa_unref_sync_object(ctx, syncObj, 1);
515 _mesa_unref_sync_object(ctx, syncObj, 1);