From dd303060c45aa3f50a91a03c146796966885105d Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Mon, 5 Apr 2010 09:30:21 -0400 Subject: [PATCH] xf86-video-intel: Bump to 2.11.0 with revert fixing Xv corruption. --- x11-drivers/xf86-video-intel/Manifest | 5 +- .../0001-Revert-Xv-fixup-XvMC-on-i915.patch | 200 ++++++++++++++++++ ....ebuild => xf86-video-intel-2.11.0.ebuild} | 12 +- 3 files changed, 209 insertions(+), 8 deletions(-) create mode 100644 x11-drivers/xf86-video-intel/files/0001-Revert-Xv-fixup-XvMC-on-i915.patch rename x11-drivers/xf86-video-intel/{xf86-video-intel-2.10.903.ebuild => xf86-video-intel-2.11.0.ebuild} (87%) diff --git a/x11-drivers/xf86-video-intel/Manifest b/x11-drivers/xf86-video-intel/Manifest index 352515e..9ed0a9b 100644 --- a/x11-drivers/xf86-video-intel/Manifest +++ b/x11-drivers/xf86-video-intel/Manifest @@ -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 index 0000000..012abd5 --- /dev/null +++ b/x11-drivers/xf86-video-intel/files/0001-Revert-Xv-fixup-XvMC-on-i915.patch @@ -0,0 +1,200 @@ +From eca670dc31eb1793297b524760c057b80da194a9 Mon Sep 17 00:00:00 2001 +From: Nick Bowler +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 + diff --git a/x11-drivers/xf86-video-intel/xf86-video-intel-2.10.903.ebuild b/x11-drivers/xf86-video-intel/xf86-video-intel-2.11.0.ebuild 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 9f7baac..677aed4 100644 --- a/x11-drivers/xf86-video-intel/xf86-video-intel-2.10.903.ebuild +++ b/x11-drivers/xf86-video-intel/xf86-video-intel-2.11.0.ebuild @@ -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 --->" -- 2.43.2