]> git.draconx.ca Git - gentoo-draconx.git/commitdiff
xf86-video-intel: Bump to 2.11.0 with revert fixing Xv corruption.
authorNick Bowler <nbowler@elliptictech.com>
Mon, 5 Apr 2010 13:30:21 +0000 (09:30 -0400)
committerNick Bowler <nbowler@elliptictech.com>
Mon, 5 Apr 2010 13:30:21 +0000 (09:30 -0400)
x11-drivers/xf86-video-intel/Manifest
x11-drivers/xf86-video-intel/files/0001-Revert-Xv-fixup-XvMC-on-i915.patch [new file with mode: 0644]
x11-drivers/xf86-video-intel/xf86-video-intel-2.11.0.ebuild [moved from x11-drivers/xf86-video-intel/xf86-video-intel-2.10.903.ebuild with 87% similarity]

index 352515ef2d6ee9caa3c5a3e57778c6ec0da094fd..9ed0a9b0ed3c4e25e2cfbfe08e2daf8a49b78f9a 100644 (file)
@@ -1,2 +1,3 @@
-DIST xf86-video-intel-2.10.903.tar.bz2 869319 RMD160 eb81330befa7e4ad8a5226a9e35fca038b7c416f SHA1 e7fcd910565ed905e94bda3c7f97093901b98583 SHA256 0e0ab83042b9dc10aa346c94079eb3cb7de5b45b3ab45bb4c270cda9fb4cc7fd
-EBUILD xf86-video-intel-2.10.903.ebuild 1392 RMD160 015128ba907e1f4adab6c112df4d4addc59981bc SHA1 3761fc67cf212eacb70d2c321af8646e59a93530 SHA256 9e51e51fccc5b459b391c81ea503e8f0b3a5e260cf862bef74ca29a2bccfda17
+AUX 0001-Revert-Xv-fixup-XvMC-on-i915.patch 6620 RMD160 46c76543ffbc08c69881ae61ca6cfd37ae3e6845 SHA1 b9b4aac92895352a53ac39b09b41ed72b2c990aa SHA256 1e43c43f5f2c51468b792f0cf2c4979f546d2fa76089379a89146c3f311934c5
+DIST xf86-video-intel-2.11.0.tar.bz2 871551 RMD160 a857942e7eacd9e7c517c485fb6e400103e238f3 SHA1 f25eb8619ac7c107fdcee525388a8a03dd62719b SHA256 db292cbc25f3b132357795697a61c5ec6f08cb041a2cb6fd081298306f4f5a4f
+EBUILD xf86-video-intel-2.11.0.ebuild 1425 RMD160 a6ef265f2175178ce76a995e6917fa59f8fadcea SHA1 26bf76846050c9555134b9b09acd21c2df95c7ab SHA256 1cd166abcc8070111c4e7ef8e3089583f1cf5308138a0c285feb078e7668342b
diff --git a/x11-drivers/xf86-video-intel/files/0001-Revert-Xv-fixup-XvMC-on-i915.patch b/x11-drivers/xf86-video-intel/files/0001-Revert-Xv-fixup-XvMC-on-i915.patch
new file mode 100644 (file)
index 0000000..012abd5
--- /dev/null
@@ -0,0 +1,200 @@
+From eca670dc31eb1793297b524760c057b80da194a9 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@elliptictech.com>
+Date: Mon, 5 Apr 2010 08:38:58 -0400
+Subject: [PATCH] Revert "Xv: fixup XvMC on i915"
+
+This reverts commit cb06aa32d433f54affe87da2cf964f0308d3c258.
+
+Conflicts:
+
+       src/i830_video.c
+---
+ src/i830_video.c |   67 +++++++++++++++++++++++++++++------------------------
+ 1 files changed, 37 insertions(+), 30 deletions(-)
+
+diff --git a/src/i830_video.c b/src/i830_video.c
+index db72863..1def5e1 100644
+--- a/src/i830_video.c
++++ b/src/i830_video.c
+@@ -267,7 +267,7 @@ static void drmmode_overlay_off(ScrnInfoPtr scrn)
+ static Bool
+ drmmode_overlay_put_image(ScrnInfoPtr scrn, xf86CrtcPtr crtc,
+                         int id, short width, short height,
+-                        int dstPitch, int dstPitch2,
++                        int dstPitch,
+                         BoxPtr dstBox, short src_w, short src_h, short drw_w,
+                         short drw_h)
+ {
+@@ -282,7 +282,7 @@ drmmode_overlay_put_image(ScrnInfoPtr scrn, xf86CrtcPtr crtc,
+       request.bo_handle = adaptor_priv->buf->handle;
+       if (planar) {
+-              request.stride_Y = dstPitch2;
++              request.stride_Y = dstPitch * 2;
+               request.stride_UV = dstPitch;
+       } else {
+               request.stride_Y = dstPitch;
+@@ -959,12 +959,12 @@ static void i830_memcpy_plane(unsigned char *dst, unsigned char *src,
+ static void
+ I830CopyPlanarData(intel_adaptor_private *adaptor_priv,
+-                 unsigned char *buf, int srcPitch, int srcPitch2,
+-                 int dstPitch, int dstPitch2,
+-                 int srcH, int top, int left,
++                 unsigned char *buf, int srcPitch,
++                 int srcPitch2, int dstPitch, int srcH, int top, int left,
+                  int h, int w, int id)
+ {
+       unsigned char *src1, *src2, *src3, *dst_base, *dst1, *dst2, *dst3;
++      int dstPitch2 = dstPitch << 1;
+ #if 0
+       ErrorF("I830CopyPlanarData: srcPitch %d, srcPitch %d, dstPitch %d\n"
+@@ -1181,7 +1181,7 @@ static int xvmc_passthrough(int id)
+ static Bool
+ i830_display_overlay(ScrnInfoPtr scrn, xf86CrtcPtr crtc,
+                    int id, short width, short height,
+-                   int dstPitch, int dstPitch2,
++                   int dstPitch,
+                    BoxPtr dstBox, short src_w, short src_h, short drw_w,
+                    short drw_h)
+ {
+@@ -1214,7 +1214,7 @@ i830_display_overlay(ScrnInfoPtr scrn, xf86CrtcPtr crtc,
+       }
+       return drmmode_overlay_put_image(scrn, crtc, id, width, height,
+-                                       dstPitch, dstPitch2, dstBox,
++                                       dstPitch, dstBox,
+                                        src_w, src_h, drw_w, drw_h);
+ }
+@@ -1362,33 +1362,28 @@ i830_setup_dst_params(ScrnInfoPtr scrn, intel_adaptor_private *adaptor_priv, sho
+               if (IS_I965G(intel))
+                       pitchAlignMask = 255;
+               else
+-                      pitchAlignMask = 255;
++                      pitchAlignMask = 63;
+       }
+-#if INTEL_XVMC
+-      /* for i915 xvmc, hw requires 1kb aligned surfaces */
+-      if ((id == FOURCC_XVMC) && IS_I915(intel))
+-              pitchAlignMask = 0x3ff;
+-#endif
+-
+       /* Determine the desired destination pitch (representing the chroma's pitch,
+        * in the planar case.
+        */
+-      if (is_planar_fourcc(id)) {
++      switch (id) {
++      case FOURCC_YV12:
++      case FOURCC_I420:
+               if (adaptor_priv->rotation & (RR_Rotate_90 | RR_Rotate_270)) {
+                       *dstPitch =
+                           ((height / 2) + pitchAlignMask) & ~pitchAlignMask;
+-                      *dstPitch2 =
+-                          (height + pitchAlignMask) & ~pitchAlignMask;
+                       *size = *dstPitch * width * 3;
+               } else {
+                       *dstPitch =
+                           ((width / 2) + pitchAlignMask) & ~pitchAlignMask;
+-                      *dstPitch2 =
+-                          (width + pitchAlignMask) & ~pitchAlignMask;
+                       *size = *dstPitch * height * 3;
+               }
+-      } else {
++              break;
++      case FOURCC_UYVY:
++      case FOURCC_YUY2:
++
+               if (adaptor_priv->rotation & (RR_Rotate_90 | RR_Rotate_270)) {
+                       *dstPitch =
+                           ((height << 1) + pitchAlignMask) & ~pitchAlignMask;
+@@ -1398,7 +1393,18 @@ i830_setup_dst_params(ScrnInfoPtr scrn, intel_adaptor_private *adaptor_priv, sho
+                           ((width << 1) + pitchAlignMask) & ~pitchAlignMask;
+                       *size = *dstPitch * height;
+               }
+-              *dstPitch2 = 0;
++              break;
++#ifdef INTEL_XVMC
++      case FOURCC_XVMC:
++              *dstPitch = ((width / 2) + pitchAlignMask) & ~pitchAlignMask;
++              *dstPitch2 = (width + pitchAlignMask) & ~pitchAlignMask;
++              *size = 0;
++              break;
++#endif
++      default:
++              *dstPitch = 0;
++              *size = 0;
++              break;
+       }
+ #if 0
+       ErrorF("srcPitch: %d, dstPitch: %d, size: %d\n", srcPitch, *dstPitch,
+@@ -1409,12 +1415,12 @@ i830_setup_dst_params(ScrnInfoPtr scrn, intel_adaptor_private *adaptor_priv, sho
+       if (adaptor_priv->rotation & (RR_Rotate_90 | RR_Rotate_270)) {
+               adaptor_priv->UBufOffset =
+-                  adaptor_priv->YBufOffset + (*dstPitch2 * width);
++                  adaptor_priv->YBufOffset + (*dstPitch * 2 * width);
+               adaptor_priv->VBufOffset =
+                   adaptor_priv->UBufOffset + (*dstPitch * width / 2);
+       } else {
+               adaptor_priv->UBufOffset =
+-                  adaptor_priv->YBufOffset + (*dstPitch2 * height);
++                  adaptor_priv->YBufOffset + (*dstPitch * 2 * height);
+               adaptor_priv->VBufOffset =
+                   adaptor_priv->UBufOffset + (*dstPitch * height / 2);
+       }
+@@ -1445,8 +1451,7 @@ i830_copy_video_data(ScrnInfoPtr scrn, intel_adaptor_private *adaptor_priv,
+       /* copy data */
+       if (is_planar_fourcc(id)) {
+               I830CopyPlanarData(adaptor_priv, buf, srcPitch, srcPitch2,
+-                                 *dstPitch, *dstPitch2,
+-                                 height, top, left, nlines,
++                                 *dstPitch, height, top, left, nlines,
+                                  npixels, id);
+       } else {
+               I830CopyPackedData(adaptor_priv, buf, srcPitch, *dstPitch, top, left,
+@@ -1483,7 +1488,8 @@ I830PutImageTextured(ScrnInfoPtr scrn,
+       intel_screen_private *intel = intel_get_screen_private(scrn);
+       intel_adaptor_private *adaptor_priv = (intel_adaptor_private *) data;
+       PixmapPtr pixmap = get_drawable_pixmap(drawable);
+-      int dstPitch, dstPitch2;
++      int dstPitch;
++      int dstPitch2 = 0;
+       BoxRec dstBox;
+       xf86CrtcPtr crtc;
+       int top, left, npixels, nlines;
+@@ -1509,8 +1515,8 @@ I830PutImageTextured(ScrnInfoPtr scrn,
+               int size;
+               i830_free_video_buffers(adaptor_priv);
+-              i830_setup_dst_params(scrn, adaptor_priv, width, height,
+-                              &dstPitch, &dstPitch2, &size, id);
++              i830_setup_dst_params(scrn, adaptor_priv, width, height, &dstPitch,
++                              &dstPitch2, &size, id);
+               if (IS_I915G(intel) || IS_I915GM(intel)) {
+                       /* XXX: i915 is not support and needs some
+@@ -1540,7 +1546,8 @@ I830PutImageTextured(ScrnInfoPtr scrn,
+                                        drw_w, drw_h, pixmap);
+       } else {
+               I915DisplayVideoTextured(scrn, adaptor_priv, id, clipBoxes,
+-                                       width, height, dstPitch, dstPitch2,
++                                       width, height, dstPitch,
++                                       dstPitch2,
+                                        src_w, src_h, drw_w, drw_h,
+                                        pixmap);
+       }
+@@ -1608,7 +1615,7 @@ I830PutImageOverlay(ScrnInfoPtr scrn,
+               return BadAlloc;
+       if (!i830_display_overlay
+-          (scrn, crtc, id, width, height, dstPitch, dstPitch2,
++          (scrn, crtc, id, width, height, dstPitch,
+            &dstBox, src_w, src_h, drw_w, drw_h))
+               return BadAlloc;
+-- 
+1.7.0.4
+
similarity index 87%
rename from x11-drivers/xf86-video-intel/xf86-video-intel-2.10.903.ebuild
rename to x11-drivers/xf86-video-intel/xf86-video-intel-2.11.0.ebuild
index 9f7baac20484fc7e90bfebe0531ccedab6157323..677aed4b71ec7aede3dc8cc24f83885aa80de558 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2010 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-intel/xf86-video-intel-2.10.0-r1.ebuild,v 1.2 2010/03/14 22:42:25 remi Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-intel/xf86-video-intel-2.11.0.ebuild,v 1.1 2010/04/01 21:39:23 remi Exp $
 
 EAPI=3
 
@@ -24,22 +24,22 @@ DEPEND="${RDEPEND}
        x11-proto/randrproto
        x11-proto/renderproto
        x11-proto/xextproto
-       x11-proto/xineramaproto
        x11-proto/xproto
        dri? ( x11-proto/xf86driproto
               x11-proto/glproto )"
 
-PATCHES=(
-)
-
 pkg_setup() {
        xorg-2_pkg_setup
        CONFIGURE_OPTIONS="$(use_enable dri) --enable-xvmc"
 }
 
+src_prepare() {
+       epatch "${FILESDIR}/0001-Revert-Xv-fixup-XvMC-on-i915.patch"
+}
+
 pkg_postinst() {
        if linux_config_exists \
-               && ! linux_chkconfig_present CONFIG_DRM_I915_KMS; then
+               && ! linux_chkconfig_present DRM_I915_KMS; then
                echo
                ewarn "This driver requires KMS support in your kernel"
                ewarn "  Device Drivers --->"