Lines Matching defs:syncObj

81 _mesa_delete_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj)
84 free(syncObj->Label);
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;
178 struct gl_sync_object *syncObj = (struct gl_sync_object *) sync;
180 if (syncObj != NULL
181 && _mesa_set_search(ctx->Shared->SyncObjects, syncObj) != NULL
182 && !syncObj->DeletePending) {
184 syncObj->RefCount++;
187 syncObj = NULL;
190 return syncObj;
195 _mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj,
201 syncObj->RefCount -= amount;
202 if (syncObj->RefCount == 0) {
203 entry = _mesa_set_search(ctx->Shared->SyncObjects, syncObj);
208 ctx->Driver.DeleteSyncObject(ctx, syncObj);
228 struct gl_sync_object *syncObj;
240 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
241 if (!no_error && !syncObj) {
252 syncObj->DeletePending = GL_TRUE;
253 _mesa_unref_sync_object(ctx, syncObj, 2);
276 struct gl_sync_object *syncObj;
278 syncObj = ctx->Driver.NewSyncObject(ctx);
279 if (syncObj != NULL) {
285 syncObj->Name = 1;
286 syncObj->RefCount = 1;
287 syncObj->DeletePending = GL_FALSE;
288 syncObj->SyncCondition = condition;
289 syncObj->Flags = flags;
290 syncObj->StatusFlag = 0;
292 ctx->Driver.FenceSync(ctx, syncObj, condition, flags);
295 _mesa_set_add(ctx->Shared->SyncObjects, syncObj);
298 return (GLsync)syncObj;
335 client_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
347 ctx->Driver.CheckSync(ctx, syncObj);
348 if (syncObj->StatusFlag) {
354 ctx->Driver.ClientWaitSync(ctx, syncObj, flags, timeout);
356 ret = syncObj->StatusFlag
361 _mesa_unref_sync_object(ctx, syncObj, 1);
371 struct gl_sync_object *syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
372 return client_wait_sync(ctx, syncObj, flags, timeout);
380 struct gl_sync_object *syncObj;
389 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
390 if (!syncObj) {
396 return client_wait_sync(ctx, syncObj, flags, timeout);
401 wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
404 ctx->Driver.ServerWaitSync(ctx, syncObj, flags, timeout);
405 _mesa_unref_sync_object(ctx, syncObj, 1);
414 struct gl_sync_object *syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
415 wait_sync(ctx, syncObj, flags, timeout);
423 struct gl_sync_object *syncObj;
436 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
437 if (!syncObj) {
443 wait_sync(ctx, syncObj, flags, timeout);
452 struct gl_sync_object *syncObj;
456 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
457 if (!syncObj) {
470 v[0] = syncObj->SyncCondition;
479 ctx->Driver.CheckSync(ctx, syncObj);
481 v[0] = (syncObj->StatusFlag) ? GL_SIGNALED : GL_UNSIGNALED;
486 v[0] = syncObj->Flags;
492 _mesa_unref_sync_object(ctx, syncObj, 1);
514 _mesa_unref_sync_object(ctx, syncObj, 1);