diff options
author | Rémi Cardona <remi@gentoo.org> | 2008-04-18 17:28:17 +0000 |
---|---|---|
committer | Rémi Cardona <remi@gentoo.org> | 2008-04-18 17:28:17 +0000 |
commit | a0ab5c45f3e07cb4f6a876fe01073f1229282f7a (patch) | |
tree | da7f5240aa1b3f2dbcbc0242867e69b59e9f1bbf /x11-drivers | |
parent | Stable on ppc wrt bug 217408 (diff) | |
download | gentoo-2-a0ab5c45f3e07cb4f6a876fe01073f1229282f7a.tar.gz gentoo-2-a0ab5c45f3e07cb4f6a876fe01073f1229282f7a.tar.bz2 gentoo-2-a0ab5c45f3e07cb4f6a876fe01073f1229282f7a.zip |
x11-drivers/xf86-video-i810: Add patches to fix non-native resolution on i8xx-attached LFP displays
(Portage version: 2.1.5_rc4)
Diffstat (limited to 'x11-drivers')
3 files changed, 158 insertions, 1 deletions
diff --git a/x11-drivers/xf86-video-i810/ChangeLog b/x11-drivers/xf86-video-i810/ChangeLog index 7899c91d8a60..aeafc933a733 100644 --- a/x11-drivers/xf86-video-i810/ChangeLog +++ b/x11-drivers/xf86-video-i810/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for x11-drivers/xf86-video-i810 # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-i810/ChangeLog,v 1.84 2008/04/14 05:55:53 remi Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-i810/ChangeLog,v 1.85 2008/04/18 17:28:17 remi Exp $ + +*xf86-video-i810-2.2.99.903-r1 (18 Apr 2008) + + 18 Apr 2008; Rémi Cardona <remi@gentoo.org> + +files/xf86-video-i810-2.2.99.903-fix-panel-resize-on-i8xx.patch, + +xf86-video-i810-2.2.99.903-r1.ebuild: + Add patches to fix non-native resolution on i8xx-attached LFP displays *xf86-video-i810-2.2.99.903 (14 Apr 2008) diff --git a/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.903-fix-panel-resize-on-i8xx.patch b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.903-fix-panel-resize-on-i8xx.patch new file mode 100644 index 000000000000..ba7a883d3c13 --- /dev/null +++ b/x11-drivers/xf86-video-i810/files/xf86-video-i810-2.2.99.903-fix-panel-resize-on-i8xx.patch @@ -0,0 +1,107 @@ +diff --git a/src/i830.h b/src/i830.h +index 834e4dc..e2c39cc 100644 +--- a/src/i830.h ++++ b/src/i830.h +@@ -857,6 +857,17 @@ static inline int i830_fb_compression_supported(I830Ptr pI830) + + Bool i830_pixmap_tiled(PixmapPtr p); + ++#define i830_exa_check_pitch_2d(p) do {\ ++ uint32_t pitch = intel_get_pixmap_pitch(p);\ ++ if (pitch > KB(32)) return FALSE;\ ++} while(0) ++ ++/* For pre-965 chip only, as they have 8KB limit for 3D */ ++#define i830_exa_check_pitch_3d(p) do {\ ++ uint32_t pitch = intel_get_pixmap_pitch(p);\ ++ if (pitch > KB(8)) return FALSE;\ ++} while(0) ++ + /* Batchbuffer compatibility handling */ + #define BEGIN_BATCH(n) BEGIN_LP_RING(n) + #define ENSURE_BATCH(n) +diff --git a/src/i830_driver.c b/src/i830_driver.c +index 155e7a9..41c0578 100644 +--- a/src/i830_driver.c ++++ b/src/i830_driver.c +@@ -3108,7 +3108,7 @@ I830FreeScreen(int scrnIndex, int flags) + #ifdef INTEL_XVMC + ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + I830Ptr pI830 = I830PTR(pScrn); +- if (pI830->XvMCEnabled) ++ if (pI830 && pI830->XvMCEnabled) + intel_xvmc_finish(xf86Screens[scrnIndex]); + #endif + I830FreeRec(xf86Screens[scrnIndex]); +diff --git a/src/i830_exa.c b/src/i830_exa.c +index 9b5bb93..2c807c5 100644 +--- a/src/i830_exa.c ++++ b/src/i830_exa.c +@@ -170,6 +170,8 @@ I830EXAPrepareSolid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg) + if (pPixmap->drawable.bitsPerPixel == 24) + I830FALLBACK("solid 24bpp unsupported!\n"); + ++ i830_exa_check_pitch_2d(pPixmap); ++ + offset = exaGetPixmapOffset(pPixmap); + pitch = exaGetPixmapPitch(pPixmap); + +@@ -255,6 +257,9 @@ I830EXAPrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, + if (!EXA_PM_IS_SOLID(&pSrcPixmap->drawable, planemask)) + I830FALLBACK("planemask is not solid"); + ++ i830_exa_check_pitch_2d(pSrcPixmap); ++ i830_exa_check_pitch_2d(pDstPixmap); ++ + pI830->pSrcPixmap = pSrcPixmap; + + pI830->BR[13] = I830CopyROP[alu] << 16; +diff --git a/src/i830_lvds.c b/src/i830_lvds.c +index a5004b4..1562c21 100644 +--- a/src/i830_lvds.c ++++ b/src/i830_lvds.c +@@ -1366,9 +1366,10 @@ i830_lvds_init(ScrnInfoPtr pScrn) + + /* + * Default to filling the whole screen if the mode is less than the +- * native size, without breaking aspect ratio. ++ * native size. (Change default to origin FULL mode, i8xx can only work ++ * in that mode for now.) + */ +- dev_priv->fitting_mode = FULL_ASPECT; ++ dev_priv->fitting_mode = FULL; + + return; + +diff --git a/src/i830_render.c b/src/i830_render.c +index 195e9a8..3a959e8 100644 +--- a/src/i830_render.c ++++ b/src/i830_render.c +@@ -398,6 +398,11 @@ i830_prepare_composite(int op, PicturePtr pSrcPicture, + Bool is_affine_src, is_affine_mask; + Bool is_nearest = FALSE; + ++ i830_exa_check_pitch_3d(pSrc); ++ if (pMask) ++ i830_exa_check_pitch_3d(pMask); ++ i830_exa_check_pitch_3d(pDst); ++ + IntelEmitInvarientState(pScrn); + *pI830->last_3d = LAST_3D_RENDER; + +diff --git a/src/i915_render.c b/src/i915_render.c +index 2b9ed04..4a02cf5 100644 +--- a/src/i915_render.c ++++ b/src/i915_render.c +@@ -323,6 +323,11 @@ i915_prepare_composite(int op, PicturePtr pSrcPicture, + Bool is_affine_src, is_affine_mask; + Bool is_nearest = FALSE; + ++ i830_exa_check_pitch_3d(pSrc); ++ if (pMask) ++ i830_exa_check_pitch_3d(pMask); ++ i830_exa_check_pitch_3d(pDst); ++ + IntelEmitInvarientState(pScrn); + *pI830->last_3d = LAST_3D_RENDER; + diff --git a/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.903-r1.ebuild b/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.903-r1.ebuild new file mode 100644 index 000000000000..6416c821de26 --- /dev/null +++ b/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.903-r1.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-i810/xf86-video-i810-2.2.99.903-r1.ebuild,v 1.1 2008/04/18 17:28:17 remi Exp $ + +# Must be before x-modular eclass is inherited +# Enable snapshot to get the man page in the right place +# This should be fixed with a XDP patch later +SNAPSHOT="yes" +XDPVER=-1 + +inherit x-modular + +# This really needs a pkgmove... +SRC_URI="http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-${PV}.tar.bz2" + +S="${WORKDIR}/xf86-video-intel-${PV}" + +DESCRIPTION="X.Org driver for Intel cards" + +KEYWORDS="~amd64 ~arm ~ia64 ~sh ~x86 ~x86-fbsd" +IUSE="dri" + +RDEPEND=">=x11-base/xorg-server-1.2 + x11-libs/libXvMC" +DEPEND="${RDEPEND} + x11-proto/fontsproto + x11-proto/randrproto + x11-proto/renderproto + x11-proto/xextproto + x11-proto/xineramaproto + x11-proto/xproto + dri? ( x11-proto/xf86driproto + >=x11-libs/libdrm-2.2 + x11-libs/libX11 )" + +PATCHES=("${FILESDIR}/${PN}-2.2.99.903-fix-panel-resize-on-i8xx.patch") +CONFIGURE_OPTIONS="$(use_enable dri)" + +pkg_setup() { + if use dri && ! built_with_use x11-base/xorg-server dri; then + die "Build x11-base/xorg-server with USE=dri." + fi +} |