Bits to implement ServerWaitSemaphoreObject/ServerSignalSemaphoreObject Signed-off-by: Andres Rodriguez <andre...@gmail.com> --- src/mesa/state_tracker/st_cb_semaphoreobjects.c | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
diff --git a/src/mesa/state_tracker/st_cb_semaphoreobjects.c b/src/mesa/state_tracker/st_cb_semaphoreobjects.c index 47ece47..4cff3fd 100644 --- a/src/mesa/state_tracker/st_cb_semaphoreobjects.c +++ b/src/mesa/state_tracker/st_cb_semaphoreobjects.c @@ -1,5 +1,7 @@ + #include "main/imports.h" #include "main/mtypes.h" +#include "main/context.h" #include "main/externalobjects.h" @@ -47,10 +49,36 @@ st_import_semaphoreobj_fd(struct gl_context *ctx, #endif } +static void +st_server_wait_semaphore(struct gl_context *ctx, + struct gl_semaphore_object *semObj) +{ + struct st_semaphore_object *st_obj = st_semaphore_object(semObj); + struct st_context *st = st_context(ctx); + struct pipe_context *pipe = st->pipe; + + _mesa_flush(ctx); + pipe->semobj_wait(pipe, st_obj->semaphore); +} + +static void +st_server_signal_semaphore(struct gl_context *ctx, + struct gl_semaphore_object *semObj) +{ + struct st_semaphore_object *st_obj = st_semaphore_object(semObj); + struct st_context *st = st_context(ctx); + struct pipe_context *pipe = st->pipe; + + pipe->semobj_signal(pipe, st_obj->semaphore); + _mesa_flush(ctx); +} + void st_init_semaphoreobject_functions(struct dd_function_table *functions) { functions->NewSemaphoreObject = st_semaphoreobj_alloc; functions->DeleteSemaphoreObject = st_semaphoreobj_free; functions->ImportSemaphoreFd = st_import_semaphoreobj_fd; + functions->ServerWaitSemaphoreObject = st_server_wait_semaphore; + functions->ServerSignalSemaphoreObject = st_server_signal_semaphore; } -- 2.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev