xf86-video-intel: 3 commits - configure.ac xvmc/intel_xvmc.c xvmc/intel_xvmc_private.h xvmc/Makefile.am
Chris Wilson
ickle at kemper.freedesktop.org
Fri Jun 13 01:32:41 PDT 2014
configure.ac | 5 ++---
xvmc/Makefile.am | 6 ++----
xvmc/intel_xvmc.c | 23 +++++++----------------
xvmc/intel_xvmc_private.h | 39 +++++++++++----------------------------
4 files changed, 22 insertions(+), 51 deletions(-)
New commits:
commit cd381ad96eadb72eb1a983c973a5dd47f547fc8b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Jun 13 09:31:50 2014 +0100
xvmc: Refactor mutex locking
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/xvmc/intel_xvmc.c b/xvmc/intel_xvmc.c
index 2a2c8b9..9a09aeb 100644
--- a/xvmc/intel_xvmc.c
+++ b/xvmc/intel_xvmc.c
@@ -103,21 +103,6 @@ unsigned int mb_bytes_420[] = {
768 /* 111111 */
};
-void LOCK_HARDWARE(drm_context_t ctx)
-{
- PPTHREAD_MUTEX_LOCK();
- assert(!xvmc_driver->locked);
-
- xvmc_driver->locked = 1;
-}
-
-void UNLOCK_HARDWARE(drm_context_t ctx)
-{
- xvmc_driver->locked = 0;
-
- PPTHREAD_MUTEX_UNLOCK();
-}
-
static int
dri2_connect(Display *display)
{
@@ -340,8 +325,14 @@ _X_EXPORT Status XvMCCreateContext(Display * display, XvPortID port,
return ret;
}
-
+ sigfillset(&xvmc_driver->sa_mask);
+ sigdelset(&xvmc_driver->sa_mask, SIGFPE);
+ sigdelset(&xvmc_driver->sa_mask, SIGILL);
+ sigdelset(&xvmc_driver->sa_mask, SIGSEGV);
+ sigdelset(&xvmc_driver->sa_mask, SIGBUS);
+ sigdelset(&xvmc_driver->sa_mask, SIGKILL);
pthread_mutex_init(&xvmc_driver->ctxmutex, NULL);
+
intel_xvmc_dump_open();
return Success;
diff --git a/xvmc/intel_xvmc_private.h b/xvmc/intel_xvmc_private.h
index e2ea2dc..d3f7b9e 100644
--- a/xvmc/intel_xvmc_private.h
+++ b/xvmc/intel_xvmc_private.h
@@ -147,9 +147,8 @@ typedef struct _intel_xvmc_driver {
} alloc;
intel_xvmc_drm_map_t batchbuffer;
- sigset_t sa_mask;
+ sigset_t sa_mask, old_mask;
pthread_mutex_t ctxmutex;
- int locked;
int num_ctx;
intel_xvmc_context_ptr ctx_list;
@@ -194,33 +193,17 @@ extern struct _intel_xvmc_driver i965_xvmc_mc_driver;
extern struct _intel_xvmc_driver xvmc_vld_driver;
extern struct _intel_xvmc_driver *xvmc_driver;
-#define SET_BLOCKED_SIGSET() do { \
- sigset_t bl_mask; \
- sigfillset(&bl_mask); \
- sigdelset(&bl_mask, SIGFPE); \
- sigdelset(&bl_mask, SIGILL); \
- sigdelset(&bl_mask, SIGSEGV); \
- sigdelset(&bl_mask, SIGBUS); \
- sigdelset(&bl_mask, SIGKILL); \
- pthread_sigmask(SIG_SETMASK, &bl_mask, &xvmc_driver->sa_mask); \
- } while (0)
-
-#define RESTORE_BLOCKED_SIGSET() do { \
- pthread_sigmask(SIG_SETMASK, &xvmc_driver->sa_mask, NULL); \
- } while (0)
-
-#define PPTHREAD_MUTEX_LOCK() do { \
- SET_BLOCKED_SIGSET(); \
- pthread_mutex_lock(&xvmc_driver->ctxmutex); \
- } while (0)
-
-#define PPTHREAD_MUTEX_UNLOCK() do { \
- pthread_mutex_unlock(&xvmc_driver->ctxmutex); \
- RESTORE_BLOCKED_SIGSET(); \
- } while (0)
+static inline void LOCK_HARDWARE(drm_context_t ctx)
+{
+ pthread_mutex_lock(&xvmc_driver->ctxmutex);
+ pthread_sigmask(SIG_SETMASK, &xvmc_driver->sa_mask, &xvmc_driver->old_mask);
+}
-extern void LOCK_HARDWARE(drm_context_t);
-extern void UNLOCK_HARDWARE(drm_context_t);
+static inline void UNLOCK_HARDWARE(drm_context_t ctx)
+{
+ pthread_sigmask(SIG_SETMASK, &xvmc_driver->old_mask, NULL);
+ pthread_mutex_unlock(&xvmc_driver->ctxmutex);
+}
static inline const char *intel_xvmc_decoder_string(int flag)
{
commit bccfb768ee14348b6db5b140fdd6df5fdbfcad0c
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Jun 13 09:14:47 2014 +0100
xvmc: Sanitize compile and library flags
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/configure.ac b/configure.ac
index bd654f3..09dd830 100644
--- a/configure.ac
+++ b/configure.ac
@@ -622,8 +622,7 @@ AM_CONDITIONAL(SNA, test "x$SNA" != "xno")
AC_MSG_RESULT([$SNA])
if test "$XVMC" = "yes"; then
- PKG_CHECK_MODULES(XVMCLIB, [xvmc dri2proto x11], [], [XVMC="no"])
- PKG_CHECK_MODULES(XCB, [x11-xcb xcb-dri2 xcb-aux], [], [XVMC="no"])
+ PKG_CHECK_MODULES(XVMCLIB, [xvmc dri2proto x11 x11-xcb xcb-dri2 xcb-aux libdrm_intel], [], [XVMC="no"])
fi
AC_MSG_CHECKING([whether to include XvMC support])
AC_MSG_RESULT([$XVMC])
diff --git a/xvmc/Makefile.am b/xvmc/Makefile.am
index eaa88ea..a91b138 100644
--- a/xvmc/Makefile.am
+++ b/xvmc/Makefile.am
@@ -24,9 +24,7 @@ libIntelXvMC_la_SOURCES = \
intel_batchbuffer.h \
$(NULL)
-AM_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI2_CFLAGS@ \
- @XVMCLIB_CFLAGS@ @XCB_CFLAGS@ \
- -I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
+AM_CFLAGS = $(XVMCLIB_CFLAGS) $(XORG_CFLAGS) -I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
libIntelXvMC_la_LDFLAGS = -version-number 1:0:0
-libIntelXvMC_la_LIBADD = @DRI2_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@ @XCB_LIBS@ @DRMINTEL_LIBS@ -lpthread
+libIntelXvMC_la_LIBADD = $(XVMCLIB_LIBS) -lpthread
commit 5a0cb1049c2fa0586708719210a2d2cffa7a4491
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Jun 13 09:15:30 2014 +0100
configure: Fix DRI2 build
One s/DRI2/have_dri2/ too far.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/configure.ac b/configure.ac
index 21a0bf9..bd654f3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -520,7 +520,7 @@ have_dri2=no
have_dri3=no
if test "x$DRI" != "xno"; then
if test "x$DRI2" != "xno"; then
- PKG_CHECK_MODULES(have_dri2, [dri2proto >= 2.6], [have_dri2=$DRI], [have_dri2=no])
+ PKG_CHECK_MODULES(DRI2, [dri2proto >= 2.6], [have_dri2=$DRI], [have_dri2=no])
fi
if test "x$have_dri2" != "xno"; then
save_CFLAGS=$CFLAGS
More information about the xorg-commit
mailing list