Lines Matching refs:ctx

80 _mesa_init_sync(struct gl_context *ctx)
82 (void) ctx;
90 _mesa_free_sync_data(struct gl_context *ctx)
92 (void) ctx;
96 new_sync_object(struct gl_context *ctx)
105 delete_sync_object(struct gl_context *ctx,
108 struct pipe_screen *screen = ctx->pipe->screen;
117 __client_wait_sync(struct gl_context *ctx,
121 struct pipe_context *pipe = ctx->pipe;
174 _mesa_get_and_ref_sync(struct gl_context *ctx, GLsync sync, bool incRefCount)
177 simple_mtx_lock(&ctx->Shared->Mutex);
179 && _mesa_set_search(ctx->Shared->SyncObjects, syncObj) != NULL
187 simple_mtx_unlock(&ctx->Shared->Mutex);
193 _mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj,
198 simple_mtx_lock(&ctx->Shared->Mutex);
201 entry = _mesa_set_search(ctx->Shared->SyncObjects, syncObj);
203 _mesa_set_remove(ctx->Shared->SyncObjects, entry);
204 simple_mtx_unlock(&ctx->Shared->Mutex);
206 delete_sync_object(ctx, syncObj);
208 simple_mtx_unlock(&ctx->Shared->Mutex);
216 GET_CURRENT_CONTEXT(ctx);
217 ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE);
219 return _mesa_get_and_ref_sync(ctx, sync, false) ? GL_TRUE : GL_FALSE;
224 delete_sync(struct gl_context *ctx, GLsync sync, bool no_error)
238 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
240 _mesa_error(ctx, GL_INVALID_VALUE,
251 _mesa_unref_sync_object(ctx, syncObj, 2);
258 GET_CURRENT_CONTEXT(ctx);
259 delete_sync(ctx, sync, true);
266 GET_CURRENT_CONTEXT(ctx);
267 delete_sync(ctx, sync, false);
272 fence_sync(struct gl_context *ctx, GLenum condition, GLbitfield flags)
276 syncObj = new_sync_object(ctx);
294 ctx->pipe->flush(ctx->pipe, &syncObj->fence, ctx->Shared->RefCount == 1 ? PIPE_FLUSH_DEFERRED : 0);
296 simple_mtx_lock(&ctx->Shared->Mutex);
297 _mesa_set_add(ctx->Shared->SyncObjects, syncObj);
298 simple_mtx_unlock(&ctx->Shared->Mutex);
310 GET_CURRENT_CONTEXT(ctx);
311 return fence_sync(ctx, condition, flags);
318 GET_CURRENT_CONTEXT(ctx);
319 ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, 0);
322 _mesa_error(ctx, GL_INVALID_ENUM, "glFenceSync(condition=0x%x)",
328 _mesa_error(ctx, GL_INVALID_VALUE, "glFenceSync(flags=0x%x)", condition);
332 return fence_sync(ctx, condition, flags);
337 client_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
349 __client_wait_sync(ctx, syncObj, 0, 0);
356 __client_wait_sync(ctx, syncObj, flags, timeout);
363 _mesa_unref_sync_object(ctx, syncObj, 1);
371 GET_CURRENT_CONTEXT(ctx);
373 struct gl_sync_object *syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
374 return client_wait_sync(ctx, syncObj, flags, timeout);
381 GET_CURRENT_CONTEXT(ctx);
384 ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_WAIT_FAILED);
387 _mesa_error(ctx, GL_INVALID_VALUE, "glClientWaitSync(flags=0x%x)", flags);
391 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
393 _mesa_error(ctx, GL_INVALID_VALUE,
398 return client_wait_sync(ctx, syncObj, flags, timeout);
403 wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
406 struct pipe_context *pipe = ctx->pipe;
413 _mesa_unref_sync_object(ctx, syncObj, 1);
422 _mesa_unref_sync_object(ctx, syncObj, 1);
432 _mesa_unref_sync_object(ctx, syncObj, 1);
439 GET_CURRENT_CONTEXT(ctx);
441 struct gl_sync_object *syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
442 wait_sync(ctx, syncObj, flags, timeout);
449 GET_CURRENT_CONTEXT(ctx);
453 _mesa_error(ctx, GL_INVALID_VALUE, "glWaitSync(flags=0x%x)", flags);
458 _mesa_error(ctx, GL_INVALID_VALUE, "glWaitSync(timeout=0x%" PRIx64 ")",
463 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
465 _mesa_error(ctx, GL_INVALID_VALUE,
470 wait_sync(ctx, syncObj, flags, timeout);
478 GET_CURRENT_CONTEXT(ctx);
483 syncObj = _mesa_get_and_ref_sync(ctx, sync, true);
485 _mesa_error(ctx, GL_INVALID_VALUE,
506 __client_wait_sync(ctx, syncObj, 0, 0);
518 _mesa_error(ctx, GL_INVALID_ENUM, "glGetSynciv(pname=0x%x)\n", pname);
519 _mesa_unref_sync_object(ctx, syncObj, 1);
528 _mesa_error(ctx, GL_INVALID_VALUE, "glGetSynciv(pname=0x%x)\n", pname);
541 _mesa_unref_sync_object(ctx, syncObj, 1);