xf86-video-intel: Branch 'xf86-video-intel-2.6-branch' - 4 commits - configure.ac src/i830_sdvo.c src/xvmc/intel_xvmc.c src/xvmc/Makefile.am uxa/uxa.c

Zhenyu Wang zhen at kemper.freedesktop.org
Thu Dec 25 06:23:01 PST 2008


 configure.ac          |    1 +
 src/i830_sdvo.c       |    1 -
 src/xvmc/Makefile.am  |    4 ++--
 src/xvmc/intel_xvmc.c |   18 ++++++++++--------
 uxa/uxa.c             |   13 ++++++++++---
 5 files changed, 23 insertions(+), 14 deletions(-)

New commits:
commit 892cb5db6fd4c5cc692bc74a2615860f27e9feff
Author: Ma Ling <ling.ma at intel.com>
Date:   Mon Dec 22 10:35:52 2008 +0800

    SDVO: reset pixel repeat in avi frame
    
    For #19115, the root cause  is  avi_if.u.avi.PR in
    i830_sdvo_set_avi_infoframe() belongs to element for
    interlaced mode based on CEA_861B, but currently we
    don't support interlaced mode. So it should be set as 0.
    (cherry picked from commit e38fd84fcccc18284b649a60b4cfd8e24eaf059d)

diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index 256d16d..6d2d8b1 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -947,7 +947,6 @@ static void i830_sdvo_set_avi_infoframe(xf86OutputPtr output,
 	.len = DIP_LEN_AVI,
     };
 
-    avi_if.u.avi.PR = i830_sdvo_get_pixel_multiplier(mode) - 1;
     avi_if.checksum = i830_sdvo_calc_hbuf_csum((uint8_t *)&avi_if,
 					4 + avi_if.len);
     i830_sdvo_set_hdmi_buf(output, 1, (uint8_t *)&avi_if, 4 + avi_if.len,
commit 5586aa24ebfbd7333c3438a7c7e4810bc548ff1b
Author: Peter Alfredsen <loki_val at gentoo.org>
Date:   Fri Dec 19 08:10:06 2008 +0800

    xvmc: fix up needed libs
    (cherry picked from commit 74bc420940de4ed02705211ddebbc4033c032242)

diff --git a/configure.ac b/configure.ac
index dd4e114..3f0c6d1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -248,6 +248,7 @@ if test "$XVMC" = yes && test "$DRI" = no; then
 fi
 if test "$XVMC" = yes; then
 	PKG_CHECK_MODULES(XVMCLIB, [xvmc], [XVMC=yes], [XVMC=no])
+	PKG_CHECK_MODULES(XEXT, [xext])
 fi
 AC_MSG_CHECKING([whether to include XvMC support])
 AC_MSG_RESULT([$XVMC])
diff --git a/src/xvmc/Makefile.am b/src/xvmc/Makefile.am
index 0060190..9e62683 100644
--- a/src/xvmc/Makefile.am
+++ b/src/xvmc/Makefile.am
@@ -7,7 +7,7 @@ libI810XvMC_la_SOURCES = I810XvMC.c \
 libI810XvMC_la_CFLAGS = @WARN_CFLAGS@ @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
 	-I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
 libI810XvMC_la_LDFLAGS = -version-number 1:0:0
-libI810XvMC_la_LIBADD = @DRI_LIBS@ 
+libI810XvMC_la_LIBADD = @DRI_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@
 
 libIntelXvMC_la_SOURCES = intel_xvmc.c \
         intel_xvmc.h                   \
@@ -27,7 +27,7 @@ libIntelXvMC_la_SOURCES = intel_xvmc.c \
 libIntelXvMC_la_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
 	@XVMCLIB_CFLAGS@ -I$(top_srcdir)/src -DTRUE=1 -DFALSE=0
 libIntelXvMC_la_LDFLAGS = -version-number 1:0:0
-libIntelXvMC_la_LIBADD = @DRI_LIBS@
+libIntelXvMC_la_LIBADD = @DRI_LIBS@ @DRM_LIBS@ @XVMCLIB_LIBS@ @XEXT_LIBS@ -lpthread
 
 INTEL_G4A =                         \
         dual_prime_igd.g4a              \
commit 304dddf6578c55ce7324d930cfb9b3ba605a007a
Author: Robert Noland <rnoland at 2hip.net>
Date:   Wed Dec 17 09:27:30 2008 +0800

    Fix drmOpen for non-linux 965 XvMC
    
    drmOpen by name only works on linux after falling back to groping around
    in /proc.  This doesn't work on other OS.
    
    Signed-off-by: Robert Noland <rnoland at 2hip.net>
    (cherry picked from commit ed267072db7c58ee16a458fd3dc24ce3a2d0061d)

diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
index d18c722..dbde22f 100644
--- a/src/xvmc/intel_xvmc.c
+++ b/src/xvmc/intel_xvmc.c
@@ -292,12 +292,6 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
 
     intel_xvmc_debug_init();
 
-    /* Open DRI Device */
-    if((fd = drmOpen("i915", NULL)) < 0) {
-        XVMC_ERR("DRM Device could not be opened.");
-        return BadValue;
-    }
-
     /*
        Width, Height, and flags are checked against surface_type_id
        and port for validity inside the X server, no need to check
@@ -358,8 +352,6 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
 	return BadValue;
     }
 
-    xvmc_driver->fd = fd;
-
     XVMC_INFO("decoder type is %s", intel_xvmc_decoder_string(comm->type));
 
     xvmc_driver->sarea_size = comm->sarea_size;
@@ -390,6 +382,16 @@ _X_EXPORT Status XvMCCreateContext(Display *display, XvPortID port,
         return BadValue;
     }
 
+    /* Open DRI Device */
+    if((fd = drmOpen("i915", curBusID)) < 0) {
+        XVMC_ERR("DRM Device could not be opened.");
+        XFree(priv_data);
+        XFree(curBusID);
+        return BadValue;
+    }
+
+    xvmc_driver->fd = fd;
+
     strncpy(xvmc_driver->busID, curBusID, 20);
     xvmc_driver->busID[20] = '\0';
     XFree(curBusID);
commit 621859803c0dcb893ea3f3d95d36b4c51a08cbe3
Author: Eric Anholt <eric at anholt.net>
Date:   Sun Dec 14 16:09:25 2008 -0800

    uxa: Correctly prepare/finishaccess of stipple in ValidateGC (and only it)
    
    This avoids prepare/finish_access_gc overhead when we're not changing things
    (since GCTile is already handled) and get us the RW flag for the prepare on
    of the stipple pixmap so thing will be synced correctly.
    (cherry picked from commit ecdd706873c1f990f4a78fbaecf7380411edabcd)

diff --git a/uxa/uxa.c b/uxa/uxa.c
index 5b6f537..102717d 100644
--- a/uxa/uxa.c
+++ b/uxa/uxa.c
@@ -237,9 +237,16 @@ uxa_validate_gc (GCPtr pGC, unsigned long changes, DrawablePtr pDrawable)
 	changes &= ~GCTile;
     }
 
-    uxa_prepare_access_gc(pGC);
-    fbValidateGC (pGC, changes, pDrawable);
-    uxa_finish_access_gc(pGC);
+    if (changes & GCStipple && pGC->stipple) {
+	/* We can't inline stipple handling like we do for GCTile because it sets
+	 * fbgc privates.
+	 */
+	uxa_prepare_access(&pGC->stipple->drawable, UXA_ACCESS_RW);
+	fbValidateGC (pGC, changes, pDrawable);
+	uxa_finish_access(&pGC->stipple->drawable);
+    } else {
+	fbValidateGC (pGC, changes, pDrawable);
+    }
 
     pGC->ops = (GCOps *) &uxa_ops;
 }


More information about the xorg-commit mailing list