Mesa (master): llvmpipe: correctly handle waiting in llvmpipe_fence_finish
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Apr 26 10:27:06 UTC 2019
Module: Mesa
Branch: master
Commit: 591955d82d8d9fd752b900b9bdc0c17085d55560
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=591955d82d8d9fd752b900b9bdc0c17085d55560
Author: Emil Velikov <emil.l.velikov at gmail.com>
Date: Thu Apr 25 18:42:03 2019 +0100
llvmpipe: correctly handle waiting in llvmpipe_fence_finish
Currently if the timeout differs from 0, we'll end up with infinite
wait... even if the user is perfectly clear they don't want that.
Use the new lp_fence_timedwait() helper guarding both waits in an
!lp_fence_signalled block like the rest of llvmpipe.
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
---
src/gallium/drivers/llvmpipe/lp_screen.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
index 8426427e397..510346d2abf 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -637,7 +637,12 @@ llvmpipe_fence_finish(struct pipe_screen *screen,
if (!timeout)
return lp_fence_signalled(f);
- lp_fence_wait(f);
+ if (!lp_fence_signalled(f)) {
+ if (timeout != PIPE_TIMEOUT_INFINITE)
+ return lp_fence_timedwait(f, timeout);
+
+ lp_fence_wait(f);
+ }
return TRUE;
}
More information about the mesa-commit
mailing list