summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2015-09-25 22:44:41 +0200
committerMarek Olšák <[email protected]>2015-10-03 22:06:08 +0200
commitb78336085bce4d1f36c8d9c72fd3fa41643e3cd1 (patch)
tree4f657f456cbb95946c363fac38806a823bc3f45c /src/gallium/state_trackers
parent27b102e7fdbcd2beedc815996e1b5fcb2b612206 (diff)
st/dri: don't use _ctx in client_wait_sync
Not needed and it can be NULL. v2: fix dri2_get_fence_from_cl_event - thanks Albert Cc: 10.6 11.0 <[email protected]> Reviewed-by: Albert Freeman <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r--src/gallium/state_trackers/dri/dri2.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c
index 91b443147d6..712203b9db9 100644
--- a/src/gallium/state_trackers/dri/dri2.c
+++ b/src/gallium/state_trackers/dri/dri2.c
@@ -1293,6 +1293,7 @@ dri2_load_opencl_interop(struct dri_screen *screen)
}
struct dri2_fence {
+ struct dri_screen *driscreen;
struct pipe_fence_handle *pipe_fence;
void *cl_event;
};
@@ -1313,6 +1314,7 @@ dri2_create_fence(__DRIcontext *_ctx)
return NULL;
}
+ fence->driscreen = dri_screen(_ctx->driScreenPriv);
return fence;
}
@@ -1336,6 +1338,7 @@ dri2_get_fence_from_cl_event(__DRIscreen *_screen, intptr_t cl_event)
return NULL;
}
+ fence->driscreen = driscreen;
return fence;
}
@@ -1360,9 +1363,9 @@ static GLboolean
dri2_client_wait_sync(__DRIcontext *_ctx, void *_fence, unsigned flags,
uint64_t timeout)
{
- struct dri_screen *driscreen = dri_screen(_ctx->driScreenPriv);
- struct pipe_screen *screen = driscreen->base.screen;
struct dri2_fence *fence = (struct dri2_fence*)_fence;
+ struct dri_screen *driscreen = fence->driscreen;
+ struct pipe_screen *screen = driscreen->base.screen;
/* No need to flush. The context was flushed when the fence was created. */