xf86-video-intel: 2 commits - configure.ac src/i830_video.c

Zhenyu Wang zhen at kemper.freedesktop.org
Sun Mar 23 23:52:55 PDT 2008


 configure.ac     |   10 ++++++++--
 src/i830_video.c |   11 +++++++----
 2 files changed, 15 insertions(+), 6 deletions(-)

New commits:
commit c1a2bc357fc122d3718eca771530367ba2915815
Author: Julien Cristau <jcristau at debian.org>
Date:   Mon Mar 24 13:29:24 2008 +0800

    Don't try to build XvMC if DRI is disabled
    
    Instead of failing the build, don't even try unless --enable-xvmc was used.

diff --git a/configure.ac b/configure.ac
index 5b677f0..9965e0b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,9 +67,9 @@ AC_ARG_WITH(xserver-source,AC_HELP_STRING([--with-xserver-source=XSERVER_SOURCE]
 			   [ XSERVER_SOURCE="" ])
 
 AC_ARG_ENABLE(xvmc, AC_HELP_STRING([--disable-xvmc],
-                                  [Disable XvMC support [[default=yes]]]),
+                                  [Disable XvMC support [[default=auto]]]),
               [XVMC="$enableval"],
-              [XVMC=yes])
+              [XVMC=auto])
 
 # Checks for extensions
 XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
@@ -211,6 +211,12 @@ if test "$VIDEO_DEBUG" = yes; then
 fi
 
 AC_MSG_CHECKING([whether to include XvMC support])
+if test "$XVMC" = auto; then
+	XVMC="$DRI"
+fi
+if test "$XVMC" = yes && test "$DRI" = no; then
+	AC_MSG_ERROR([XvMC can't be enabled without DRI])
+fi
 AC_MSG_RESULT([$XVMC])
 AM_CONDITIONAL(XVMC, test x$XVMC = xyes)
 if test "$XVMC" = yes; then
commit 5fcc002f77ebb66c1dc0f901a377ccf9bbc1d0bd
Author: Maxim Levitsky <maximlevitsky at gmail.com>
Date:   Mon Mar 24 13:24:12 2008 +0800

    Fix crash triggered by dpms low power mode with hardware overlay running
    
    When overlay switch crtc, it ignores current crtc dpms mode which
    might lead to hang.

diff --git a/src/i830_video.c b/src/i830_video.c
index 0d0a9a0..5939634 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -385,11 +385,13 @@ i830_overlay_switch_to_crtc (ScrnInfoPtr pScrn, xf86CrtcPtr crtc)
     I830CrtcPrivatePtr  intel_crtc = crtc->driver_private;
     int			pipeconf_reg = intel_crtc->pipe == 0 ? PIPEACONF : PIPEBCONF;
 
-    if (!IS_I965G(pI830) && (INREG(pipeconf_reg) & PIPEACONF_DOUBLE_WIDE))
+    /* overlay can't be used on pipe with double wide, and pipe must be enabled. */
+    if ((!IS_I965G(pI830) && (INREG(pipeconf_reg) & PIPEACONF_DOUBLE_WIDE))
+	    || (intel_crtc->dpms_mode == DPMSModeOff))
 	pPriv->overlayOK = FALSE;
     else
 	pPriv->overlayOK = TRUE;
-    
+
     if (!pPriv->overlayOK)
 	return;
 
@@ -1829,10 +1831,11 @@ i830_display_video(ScrnInfoPtr pScrn, xf86CrtcPtr crtc,
     
     if (crtc != pPriv->current_crtc)
     {
-        pPriv->current_crtc = crtc;
 	i830_overlay_switch_to_crtc (pScrn, crtc);
-	if (pPriv->overlayOK)
+	if (pPriv->overlayOK) {
+	    pPriv->current_crtc = crtc;
 	    I830ResetVideo (pScrn);
+	}
     }
 
     if (!pPriv->overlayOK)


More information about the xorg-commit mailing list