summaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys
diff options
context:
space:
mode:
authorSinclair Yeh <[email protected]>2017-05-03 11:48:25 -0700
committerBrian Paul <[email protected]>2017-07-17 10:09:25 -0600
commit65175df601003f5ba29dc9c088952f6454adc0d6 (patch)
tree8f61012627474f32853e247173a4e601d6ee9d40 /src/gallium/winsys
parent9ee86d6db7e3ec7d356616163e0804d85e0691e4 (diff)
drivers/svga, winsys/svga/drm: Thread through timeout for fence_finish
The timeout parameter is required to implement EGL_ANDROID_native_fence_sync. v2 * Replaced default timeout from 0 to PIPE_TIMEOUT_INFINITE * Add more documentation to the new timeout parameter Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Charmaine Lee <[email protected]>
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r--src/gallium/winsys/svga/drm/vmw_fence.c4
-rw-r--r--src/gallium/winsys/svga/drm/vmw_fence.h1
-rw-r--r--src/gallium/winsys/svga/drm/vmw_screen_svga.c3
3 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/winsys/svga/drm/vmw_fence.c b/src/gallium/winsys/svga/drm/vmw_fence.c
index edf205e6239..5b1ba69930b 100644
--- a/src/gallium/winsys/svga/drm/vmw_fence.c
+++ b/src/gallium/winsys/svga/drm/vmw_fence.c
@@ -300,6 +300,7 @@ vmw_fence_signalled(struct vmw_winsys_screen *vws,
*
* @vws: Pointer to the winsys screen.
* @fence: Handle to the fence object.
+ * @timeout: How long to wait before timing out.
* @flag: Fence flags to wait for. If the fence object can't signal
* a flag, it is assumed to be already signaled.
*
@@ -308,6 +309,7 @@ vmw_fence_signalled(struct vmw_winsys_screen *vws,
int
vmw_fence_finish(struct vmw_winsys_screen *vws,
struct pipe_fence_handle *fence,
+ uint64_t timeout,
unsigned flag)
{
struct vmw_fence *vfence;
@@ -383,7 +385,7 @@ vmw_fence_ops_fence_finish(struct pb_fence_ops *ops,
{
struct vmw_winsys_screen *vws = vmw_fence_ops(ops)->vws;
- return vmw_fence_finish(vws, fence, flag);
+ return vmw_fence_finish(vws, fence, PIPE_TIMEOUT_INFINITE, flag);
}
diff --git a/src/gallium/winsys/svga/drm/vmw_fence.h b/src/gallium/winsys/svga/drm/vmw_fence.h
index f6381feaa2b..31e1350c316 100644
--- a/src/gallium/winsys/svga/drm/vmw_fence.h
+++ b/src/gallium/winsys/svga/drm/vmw_fence.h
@@ -43,6 +43,7 @@ vmw_fence_create(struct pb_fence_ops *fence_ops,
int
vmw_fence_finish(struct vmw_winsys_screen *vws,
struct pipe_fence_handle *fence,
+ uint64_t timeout,
unsigned flag);
int
vmw_fence_signalled(struct vmw_winsys_screen *vws,
diff --git a/src/gallium/winsys/svga/drm/vmw_screen_svga.c b/src/gallium/winsys/svga/drm/vmw_screen_svga.c
index 9312f88740c..46335378e0a 100644
--- a/src/gallium/winsys/svga/drm/vmw_screen_svga.c
+++ b/src/gallium/winsys/svga/drm/vmw_screen_svga.c
@@ -123,11 +123,12 @@ vmw_svga_winsys_fence_signalled(struct svga_winsys_screen *sws,
static int
vmw_svga_winsys_fence_finish(struct svga_winsys_screen *sws,
struct pipe_fence_handle *fence,
+ uint64_t timeout,
unsigned flag)
{
struct vmw_winsys_screen *vws = vmw_winsys_screen(sws);
- return vmw_fence_finish(vws, fence, flag);
+ return vmw_fence_finish(vws, fence, timeout, flag);
}