summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Packard <[email protected]>2013-11-21 20:22:16 -0800
committerKenneth Graunke <[email protected]>2013-12-20 16:17:54 -0800
commit568a27588d13146d0fd7cb4e775e1ac0187e5e29 (patch)
tree06bca12d062d61a2082bbceb63a10761a8d3bbaa
parent9f330481c3979724300881891dfa17e99a5698ab (diff)
dri3: Switch to libxshmfence version 1.1
libxshmfence v1.0 foolishly used 'int32_t *' for the fence type, which works when the fence is a linux futex. However, version 1.1 changes the exported datatype to 'struct xshmfence *' Require libxshmfence version 1.1 and switch the API around. Signed-off-by: Keith Packard <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--configure.ac2
-rw-r--r--src/glx/dri3_glx.c4
-rw-r--r--src/glx/dri3_priv.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index b0e2b4c3844..07680c09a11 100644
--- a/configure.ac
+++ b/configure.ac
@@ -836,7 +836,7 @@ xyesno)
dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8"
if test x"$enable_dri3" = xyes; then
- dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence"
+ dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= 1.1"
fi
# add xf86vidmode if available
diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c
index b047cc880c8..1834c6d4a8e 100644
--- a/src/glx/dri3_glx.c
+++ b/src/glx/dri3_glx.c
@@ -676,7 +676,7 @@ dri3_alloc_render_buffer(struct glx_screen *glx_screen, Drawable draw,
xcb_connection_t *c = XGetXCBConnection(dpy);
xcb_pixmap_t pixmap;
xcb_sync_fence_t sync_fence;
- int32_t *shm_fence;
+ struct xshmfence *shm_fence;
int buffer_fd, fence_fd;
int stride;
@@ -921,7 +921,7 @@ dri3_get_pixmap_buffer(__DRIdrawable *driDrawable,
struct dri3_screen *psc;
xcb_connection_t *c;
xcb_sync_fence_t sync_fence;
- int32_t *shm_fence;
+ struct xshmfence *shm_fence;
int fence_fd;
__DRIimage *image_planar;
int stride, offset;
diff --git a/src/glx/dri3_priv.h b/src/glx/dri3_priv.h
index c8928004207..efdc2ae2d2f 100644
--- a/src/glx/dri3_priv.h
+++ b/src/glx/dri3_priv.h
@@ -87,7 +87,7 @@ struct dri3_buffer {
*/
uint32_t sync_fence; /* XID of X SyncFence object */
- int32_t *shm_fence; /* pointer to xshmfence object */
+ struct xshmfence *shm_fence; /* pointer to xshmfence object */
GLboolean busy; /* Set on swap, cleared on IdleNotify */
void *driverPrivate;