projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
st/mesa: don't call st_validate_state in BlitFramebuffer
[mesa.git]
/
src
/
mesa
/
state_tracker
/
st_cb_syncobj.c
diff --git
a/src/mesa/state_tracker/st_cb_syncobj.c
b/src/mesa/state_tracker/st_cb_syncobj.c
index d23c93d98d8b854f664445066a3626aee6d2c684..ec2687fba53010178de36be7a8f96e818c7e42f5 100644
(file)
--- a/
src/mesa/state_tracker/st_cb_syncobj.c
+++ b/
src/mesa/state_tracker/st_cb_syncobj.c
@@
-81,7
+81,13
@@
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;
struct pipe_screen *screen = st_context(ctx)->pipe->screen;
struct st_sync_object *so = (struct st_sync_object*)obj;
- if (so->fence && screen->fence_finish(screen, so->fence, 0)) {
+ /* If the fence doesn't exist, assume it's signalled. */
+ if (!so->fence) {
+ so->b.StatusFlag = GL_TRUE;
+ return;
+ }
+
+ if (screen->fence_finish(screen, so->fence, 0)) {
screen->fence_reference(screen, &so->fence, NULL);
so->b.StatusFlag = GL_TRUE;
}
screen->fence_reference(screen, &so->fence, NULL);
so->b.StatusFlag = GL_TRUE;
}
@@
-94,6
+100,12
@@
static void st_client_wait_sync(struct gl_context *ctx,
struct pipe_screen *screen = st_context(ctx)->pipe->screen;
struct st_sync_object *so = (struct st_sync_object*)obj;
struct pipe_screen *screen = st_context(ctx)->pipe->screen;
struct st_sync_object *so = (struct st_sync_object*)obj;
+ /* If the fence doesn't exist, assume it's signalled. */
+ if (!so->fence) {
+ so->b.StatusFlag = GL_TRUE;
+ return;
+ }
+
/* We don't care about GL_SYNC_FLUSH_COMMANDS_BIT, because flush is
* already called when creating a fence. */
/* We don't care about GL_SYNC_FLUSH_COMMANDS_BIT, because flush is
* already called when creating a fence. */