X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_cb_syncobj.c;h=d575a84974b87c3525645f6419ce848549adee52;hb=c1477f6ffe6a3d032dbcc76a5f506a7293e2fece;hp=69a8678a7c076f729babbbdee279bf28db2054ad;hpb=5257a6dbc65d742e6d0fcf4278a4157b2f39fdf7;p=mesa.git diff --git a/src/mesa/state_tracker/st_cb_syncobj.c b/src/mesa/state_tracker/st_cb_syncobj.c index 69a8678a7c0..d575a84974b 100644 --- a/src/mesa/state_tracker/st_cb_syncobj.c +++ b/src/mesa/state_tracker/st_cb_syncobj.c @@ -72,7 +72,7 @@ static void st_fence_sync(struct gl_context *ctx, struct gl_sync_object *obj, assert(condition == GL_SYNC_GPU_COMMANDS_COMPLETE && flags == 0); assert(so->fence == NULL); - pipe->flush(pipe, 0, &so->fence); + pipe->flush(pipe, &so->fence); } static void st_check_sync(struct gl_context *ctx, struct gl_sync_object *obj) @@ -80,7 +80,7 @@ static void st_check_sync(struct gl_context *ctx, struct gl_sync_object *obj) struct pipe_screen *screen = st_context(ctx)->pipe->screen; struct st_sync_object *so = (struct st_sync_object*)obj; - if (so->fence && screen->fence_signalled(screen, so->fence, 0) == 0) { + if (so->fence && screen->fence_signalled(screen, so->fence)) { screen->fence_reference(screen, &so->fence, NULL); so->b.StatusFlag = GL_TRUE; } @@ -96,8 +96,8 @@ static void st_client_wait_sync(struct gl_context *ctx, /* We don't care about GL_SYNC_FLUSH_COMMANDS_BIT, because flush is * already called when creating a fence. */ - if (so->fence) { - screen->fence_finish(screen, so->fence, 0); + if (so->fence && + screen->fence_finish(screen, so->fence, timeout)) { screen->fence_reference(screen, &so->fence, NULL); so->b.StatusFlag = GL_TRUE; }