Mesa (master): i965: Actually use the user timeout in glClientWaitSync.
Kenneth Graunke
kwg at kemper.freedesktop.org
Thu May 9 23:48:07 UTC 2013
Module: Mesa
Branch: master
Commit: fc98c471150fe7161e57535a125c9d816b891f05
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fc98c471150fe7161e57535a125c9d816b891f05
Author: Ben Widawsky <ben at bwidawsk.net>
Date: Tue May 7 22:42:39 2013 -0700
i965: Actually use the user timeout in glClientWaitSync.
Use the new libdrm functionality to actually do timed waits on the sync
object.
Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Matt Turner <mattst88 at gmail.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
---
src/mesa/drivers/dri/intel/intel_syncobj.c | 10 +---------
1 files changed, 1 insertions(+), 9 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_syncobj.c b/src/mesa/drivers/dri/intel/intel_syncobj.c
index e965896..9657d9a 100644
--- a/src/mesa/drivers/dri/intel/intel_syncobj.c
+++ b/src/mesa/drivers/dri/intel/intel_syncobj.c
@@ -80,20 +80,12 @@ intel_fence_sync(struct gl_context *ctx, struct gl_sync_object *s,
intel_flush(ctx);
}
-/* We ignore the user-supplied timeout. This is weaselly -- we're allowed to
- * round to an implementation-dependent accuracy, and right now our
- * implementation "rounds" to the wait-forever value.
- *
- * The fix would be a new kernel function to do the GTT transition with a
- * timeout.
- */
static void intel_client_wait_sync(struct gl_context *ctx, struct gl_sync_object *s,
GLbitfield flags, GLuint64 timeout)
{
struct intel_sync_object *sync = (struct intel_sync_object *)s;
- if (sync->bo) {
- drm_intel_bo_wait_rendering(sync->bo);
+ if (sync->bo && drm_intel_gem_bo_wait(sync->bo, timeout) == 0) {
s->StatusFlag = 1;
drm_intel_bo_unreference(sync->bo);
sync->bo = NULL;
More information about the mesa-commit
mailing list