[arch-commits] Commit in xorg-server/trunk (5 files)
Jan de Groot
jgc at archlinux.org
Sun Jan 31 11:41:58 UTC 2010
Date: Sunday, January 31, 2010 @ 06:41:57
Author: jgc
Revision: 66500
upgpkg: xorg-server 1.7.4.901-1
Remove outdated patches, add git fixes from the nomination branch. Update to 1.7.4.901
Added:
xorg-server/trunk/git-fixes.patch
Modified:
xorg-server/trunk/PKGBUILD
Deleted:
xorg-server/trunk/revert-bug25136.patch
xorg-server/trunk/xserver-1.7.1-nvidia-performance.patch
xorg-server/trunk/xserver-1.7.1-window-pictures.patch
----------------------------------------+
PKGBUILD | 18 -
git-fixes.patch | 206 +++++++++++++++++++
revert-bug25136.patch | 331 -------------------------------
xserver-1.7.1-nvidia-performance.patch | 58 -----
xserver-1.7.1-window-pictures.patch | 58 -----
5 files changed, 216 insertions(+), 455 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2010-01-31 11:21:38 UTC (rev 66499)
+++ PKGBUILD 2010-01-31 11:41:57 UTC (rev 66500)
@@ -2,13 +2,13 @@
# Maintainer: Jan de Groot <jgc at archlinux.org>
pkgname=xorg-server
-pkgver=1.7.3.902
+pkgver=1.7.4.901
pkgrel=1
pkgdesc="X.Org X servers"
arch=('i686' 'x86_64')
license=('custom')
url="http://xorg.freedesktop.org"
-depends=('hal>=0.5.14' 'libgl' 'libxfont>=1.4.1' 'openssl>=0.9.8k' 'libpciaccess>=0.10.9' 'libxv>=1.0.5' 'pixman>=0.16.2' 'xcursor-themes>=1.0.2' 'xkeyboard-config>=1.6' 'xorg-server-utils' 'xorg-fonts-misc' 'xbitmaps' 'diffutils' 'xf86-input-evdev>=2.2.5' 'inputproto>=2.0-1')
+depends=('hal>=0.5.14' 'libgl' 'libxfont>=1.4.1' 'openssl>=0.9.8k' 'libpciaccess>=0.10.9' 'libxv>=1.0.5' 'pixman>=0.16.4' 'xcursor-themes>=1.0.2' 'xkeyboard-config>=1.8' 'xorg-server-utils' 'xorg-fonts-misc' 'xbitmaps' 'diffutils' 'xf86-input-evdev>=2.2.5' 'inputproto>=2.0')
makedepends=('libx11>=1.3' 'mesa>=7.7' 'xf86driproto>=2.1.0' 'xtrans>=1.2.4' 'libxkbfile>=1.0.6' 'randrproto>=1.3.1' 'renderproto>=0.11' 'xcmiscproto>=1.2.0' 'bigreqsproto>=1.1.0' 'resourceproto>=1.1.0' 'videoproto>=2.3.0' 'compositeproto>=0.4.1' 'scrnsaverproto>=1.2.0' 'xf86dgaproto>=2.1' 'libgl>=7.7' 'glproto>=1.4.10' 'xorg-util-macros>=1.3.0' 'xineramaproto>=1.2')
conflicts=('catalyst-utils<=9.2' 'xf86-input-calcomp' 'xf86-input-citron' 'xf86-input-digitaledge' 'xf86-input-dmc' 'xf86-input-dynapro' 'xf86-input-elo2300'
'xf86-input-jamstudio' 'xf86-input-magellan' 'xf86-input-magictouch' 'xf86-input-microtouch' 'xf86-input-palmax' 'xf86-input-spaceorb' 'xf86-input-summa' 'xf86-input-tek4957' 'xf86-input-ur98' 'xf86-video-vga' 'xf86-video-intel-legacy' 'nvidia-96xx-utils<96.43.14' 'nvidia-173xx-utils<173.14.21')
@@ -20,8 +20,16 @@
xorg-redhat-die-ugly-pattern-die-die-die.patch
xserver-1.7.1-libcrypto.patch
xserver-1.7.1-gamma-kdm-fix.patch
+ git-fixes.patch
xvfb-run
xvfb-run.1)
+md5sums=('e1656bd2fd362299dc7bae489525a9da'
+ '1a336eb22e27cbf443ec5a2ecddfa93c'
+ '957d429cad03ac87281b7e40d963497c'
+ '8eae23916552e609c36ecae1827c2e9d'
+ 'fb936bccf2d385da4946c4137eca5d2f'
+ '52fd3effd80d7bc6c1660d4ecf23d31c'
+ '376c70308715cd2643f7bff936d9934b')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -84,9 +92,3 @@
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
}
-md5sums=('5806bd9d1ed734a60db2e32473a720b4'
- '1a336eb22e27cbf443ec5a2ecddfa93c'
- '957d429cad03ac87281b7e40d963497c'
- '8eae23916552e609c36ecae1827c2e9d'
- '52fd3effd80d7bc6c1660d4ecf23d31c'
- '376c70308715cd2643f7bff936d9934b')
Added: git-fixes.patch
===================================================================
--- git-fixes.patch (rev 0)
+++ git-fixes.patch 2010-01-31 11:41:57 UTC (rev 66500)
@@ -0,0 +1,206 @@
+From a191318f8dde2a4ff47c051244e8c88e8f92883a Mon Sep 17 00:00:00 2001
+From: Christian Zander <chzander at nvidia.com>
+Date: Mon, 11 Jan 2010 20:29:07 +0000
+Subject: x86emu: Respect the LEA 67h address size prefix.
+
+Signed-off-by: Christian Zander <chzander at nvidia.com>
+Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
+Tested-by: Tiago Vignatti <tiago.vignatti at nokia.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+(cherry picked from commit f57bc0ede8e018c7e264b917927c42a018cd1d5a)
+---
+diff --git a/hw/xfree86/x86emu/ops.c b/hw/xfree86/x86emu/ops.c
+index 37ae2c9..21a0347 100644
+--- a/hw/xfree86/x86emu/ops.c
++++ b/hw/xfree86/x86emu/ops.c
+@@ -6567,42 +6567,62 @@ Handles opcode 0x8d
+ static void x86emuOp_lea_word_R_M(u8 X86EMU_UNUSED(op1))
+ {
+ int mod, rl, rh;
+- u16 *srcreg;
+ uint destoffset;
+
+-/*
+- * TODO: Need to handle address size prefix!
+- *
+- * lea eax,[eax+ebx*2] ??
+- */
+-
+ START_OF_INSTR();
+ DECODE_PRINTF("LEA\t");
+ FETCH_DECODE_MODRM(mod, rh, rl);
+ switch (mod) {
+ case 0:
+- srcreg = DECODE_RM_WORD_REGISTER(rh);
+- DECODE_PRINTF(",");
+- destoffset = decode_rm00_address(rl);
+- DECODE_PRINTF("\n");
+- TRACE_AND_STEP();
+- *srcreg = (u16)destoffset;
++ if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
++ u32 *srcreg = DECODE_RM_LONG_REGISTER(rh);
++ DECODE_PRINTF(",");
++ destoffset = decode_rm00_address(rl);
++ DECODE_PRINTF("\n");
++ TRACE_AND_STEP();
++ *srcreg = (u32)destoffset;
++ } else {
++ u16 *srcreg = DECODE_RM_WORD_REGISTER(rh);
++ DECODE_PRINTF(",");
++ destoffset = decode_rm00_address(rl);
++ DECODE_PRINTF("\n");
++ TRACE_AND_STEP();
++ *srcreg = (u16)destoffset;
++ }
+ break;
+ case 1:
+- srcreg = DECODE_RM_WORD_REGISTER(rh);
+- DECODE_PRINTF(",");
+- destoffset = decode_rm01_address(rl);
+- DECODE_PRINTF("\n");
+- TRACE_AND_STEP();
+- *srcreg = (u16)destoffset;
++ if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
++ u32 *srcreg = DECODE_RM_LONG_REGISTER(rh);
++ DECODE_PRINTF(",");
++ destoffset = decode_rm01_address(rl);
++ DECODE_PRINTF("\n");
++ TRACE_AND_STEP();
++ *srcreg = (u32)destoffset;
++ } else {
++ u16 *srcreg = DECODE_RM_WORD_REGISTER(rh);
++ DECODE_PRINTF(",");
++ destoffset = decode_rm01_address(rl);
++ DECODE_PRINTF("\n");
++ TRACE_AND_STEP();
++ *srcreg = (u16)destoffset;
++ }
+ break;
+ case 2:
+- srcreg = DECODE_RM_WORD_REGISTER(rh);
+- DECODE_PRINTF(",");
+- destoffset = decode_rm10_address(rl);
+- DECODE_PRINTF("\n");
+- TRACE_AND_STEP();
+- *srcreg = (u16)destoffset;
++ if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
++ u32 *srcreg = DECODE_RM_LONG_REGISTER(rh);
++ DECODE_PRINTF(",");
++ destoffset = decode_rm10_address(rl);
++ DECODE_PRINTF("\n");
++ TRACE_AND_STEP();
++ *srcreg = (u32)destoffset;
++ } else {
++ u16 *srcreg = DECODE_RM_WORD_REGISTER(rh);
++ DECODE_PRINTF(",");
++ destoffset = decode_rm10_address(rl);
++ DECODE_PRINTF("\n");
++ TRACE_AND_STEP();
++ *srcreg = (u16)destoffset;
++ }
+ break;
+ case 3: /* register to register */
+ /* undefined. Do nothing. */
+--
+cgit v0.8.3-6-g21f6
+From 66b6e2fd49fdc650703e56aa176a902e4921251c Mon Sep 17 00:00:00 2001
+From: Pierre-Loup A. Griffais <pgriffais at nvidia.com>
+Date: Wed, 27 Jan 2010 22:03:03 +0000
+Subject: Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5.
+
+*xoff and *yoff were uninitialized for source-only pictures.x
+
+Signed-off-by: Pierre-Loup A. Griffais <pgriffais at nvidia.com>
+Reviewed-by: Aaron Plattner <aplattner at nvidia.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+(cherry picked from commit a6bd5d2e482a5aa84acb3d4932e2a166d8670ef1)
+---
+diff --git a/fb/fbpict.c b/fb/fbpict.c
+index f9f4343..c046bae 100644
+--- a/fb/fbpict.c
++++ b/fb/fbpict.c
+@@ -453,6 +453,7 @@ image_from_pict_18 (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
+ else if (sp->type == SourcePictTypeConical)
+ image = create_conical_gradient_image (gradient);
+ }
++ *xoff = *yoff = 0;
+ }
+
+ if (image)
+--
+cgit v0.8.3-6-g21f6
+From 734a6b9c2150ce38cf120e179cdac9d3c625434e Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith at sun.com>
+Date: Wed, 27 Jan 2010 06:25:04 +0000
+Subject: Avoid segfaults in XF86VidMode GammaRamp functions if randr_crtc is NULL
+
+Fixes crash when xscreensaver tries to use GammaRamp calls to fade out
+http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6915712
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith at sun.com>
+Reviewed-by: Keith Packard <keithp at keithp.com>
+Signed-off-by: Keith Packard <keithp at keithp.com>
+---
+diff --git a/hw/xfree86/common/xf86cmap.c b/hw/xfree86/common/xf86cmap.c
+index 08f557c..edd5ae9 100644
+--- a/hw/xfree86/common/xf86cmap.c
++++ b/hw/xfree86/common/xf86cmap.c
+@@ -1004,12 +1004,14 @@ xf86ChangeGammaRamp(
+ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
+ RRCrtcPtr crtc = config->output[config->compat_output]->crtc->randr_crtc;
+
+- if (crtc->gammaSize != size)
+- return BadValue;
++ if (crtc) {
++ if (crtc->gammaSize != size)
++ return BadValue;
+
+- RRCrtcGammaSet(crtc, red, green, blue);
++ RRCrtcGammaSet(crtc, red, green, blue);
+
+- return Success;
++ return Success;
++ }
+ }
+
+ if(CMapScreenKey == NULL)
+@@ -1077,7 +1079,8 @@ xf86GetGammaRampSize(ScreenPtr pScreen)
+ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
+ RRCrtcPtr crtc = config->output[config->compat_output]->crtc->randr_crtc;
+
+- return crtc->gammaSize;
++ if (crtc)
++ return crtc->gammaSize;
+ }
+
+ if(CMapScreenKey == NULL) return 0;
+@@ -1106,17 +1109,19 @@ xf86GetGammaRamp(
+ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
+ RRCrtcPtr crtc = config->output[config->compat_output]->crtc->randr_crtc;
+
+- if (crtc->gammaSize < size)
+- return BadValue;
++ if (crtc) {
++ if (crtc->gammaSize < size)
++ return BadValue;
+
+- if (!RRCrtcGammaGet(crtc))
+- return BadImplementation;
++ if (!RRCrtcGammaGet(crtc))
++ return BadImplementation;
+
+- memcpy(red, crtc->gammaRed, size * sizeof(*red));
+- memcpy(green, crtc->gammaGreen, size * sizeof(*green));
+- memcpy(blue, crtc->gammaBlue, size * sizeof(*blue));
++ memcpy(red, crtc->gammaRed, size * sizeof(*red));
++ memcpy(green, crtc->gammaGreen, size * sizeof(*green));
++ memcpy(blue, crtc->gammaBlue, size * sizeof(*blue));
+
+- return Success;
++ return Success;
++ }
+ }
+
+ if(CMapScreenKey == NULL)
+--
+cgit v0.8.3-6-g21f6
Deleted: revert-bug25136.patch
===================================================================
--- revert-bug25136.patch 2010-01-31 11:21:38 UTC (rev 66499)
+++ revert-bug25136.patch 2010-01-31 11:41:57 UTC (rev 66500)
@@ -1,331 +0,0 @@
-From c0de621b42bd69e883e15082c7fd35709d545d55 Mon Sep 17 00:00:00 2001
-From: Aaron Plattner <aplattner at nvidia.com>
-Date: Sun, 29 Nov 2009 20:06:26 +0000
-Subject: Restore ABI by reintroducing the "is_src" paramter to image_from_pict.
-
-Restores old ABI after 196aff9b18381d700fb28027186cce6e68ad587c.
-
-Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
-Tested-by: Julien Cristau <jcristau at debian.org>
-Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
-(cherry picked from commit 155e61a9f0429bf28ce493c0fe7a2d076cb7e137)
----
-diff --git a/fb/fb.h b/fb/fb.h
-index 6c9f8a1..37de71e 100644
---- a/fb/fb.h
-+++ b/fb/fb.h
-@@ -2080,7 +2080,8 @@ fbFillRegionSolid (DrawablePtr pDrawable,
-
- extern _X_EXPORT pixman_image_t *
- image_from_pict (PicturePtr pict,
-- Bool has_clip);
-+ Bool has_clip,
-+ Bool is_src);
- extern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
-
- #endif /* _FB_H_ */
-diff --git a/fb/fbpict.c b/fb/fbpict.c
-index 8057e90..8fdaa58 100644
---- a/fb/fbpict.c
-+++ b/fb/fbpict.c
-@@ -163,9 +163,9 @@ fbComposite (CARD8 op,
- if (pMask)
- miCompositeSourceValidate (pMask, xMask, yMask, width, height);
-
-- src = image_from_pict (pSrc, TRUE);
-- mask = image_from_pict (pMask, TRUE);
-- dest = image_from_pict (pDst, TRUE);
-+ src = image_from_pict (pSrc, TRUE, TRUE);
-+ mask = image_from_pict (pMask, TRUE, TRUE);
-+ dest = image_from_pict (pDst, TRUE, FALSE);
-
- if (src && dest && !(pMask && !mask))
- {
-@@ -361,7 +361,7 @@ set_image_properties (pixman_image_t *image, PicturePtr pict)
-
- if (pict->alphaMap)
- {
-- pixman_image_t *alpha_map = image_from_pict (pict->alphaMap, TRUE);
-+ pixman_image_t *alpha_map = image_from_pict (pict->alphaMap, TRUE, TRUE);
-
- pixman_image_set_alpha_map (
- image, alpha_map, pict->alphaOrigin.x, pict->alphaOrigin.y);
-@@ -395,7 +395,8 @@ set_image_properties (pixman_image_t *image, PicturePtr pict)
-
- pixman_image_t *
- image_from_pict (PicturePtr pict,
-- Bool has_clip)
-+ Bool has_clip,
-+ Bool is_src)
- {
- pixman_image_t *image = NULL;
-
-diff --git a/fb/fbtrap.c b/fb/fbtrap.c
-index 830603a..b1e1eff 100644
---- a/fb/fbtrap.c
-+++ b/fb/fbtrap.c
-@@ -40,7 +40,7 @@ fbAddTraps (PicturePtr pPicture,
- int ntrap,
- xTrap *traps)
- {
-- pixman_image_t *image = image_from_pict (pPicture, FALSE);
-+ pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
-
- if (!image)
- return;
-@@ -56,7 +56,7 @@ fbRasterizeTrapezoid (PicturePtr pPicture,
- int x_off,
- int y_off)
- {
-- pixman_image_t *image = image_from_pict (pPicture, FALSE);
-+ pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
-
- if (!image)
- return;
---
-cgit v0.8.3-6-g21f6
-From 196aff9b18381d700fb28027186cce6e68ad587c Mon Sep 17 00:00:00 2001
-From: Aaron Plattner <aplattner at nvidia.com>
-Date: Tue, 24 Nov 2009 18:21:28 +0000
-Subject: Bug #25136: Revert "Fix clipping when windows are used as sources"
-
-That change causes lib(w)fb to make accelerated driver calls after the driver
-has entered a software fallback. Most drivers don't expect this, which leads to
-corruption or crashes. A change to make this code do the copy in software is
-unacceptably slow.
-
-This reverts commit e9aa61e9f0d663d5b34a397b943b4d1df44e873d.
-
-Conflicts:
-
- configure.ac
- fb/fbpict.c
-
-Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
-Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
----
-diff --git a/fb/fb.h b/fb/fb.h
-index c35e765..6c9f8a1 100644
---- a/fb/fb.h
-+++ b/fb/fb.h
-@@ -2080,8 +2080,7 @@ fbFillRegionSolid (DrawablePtr pDrawable,
-
- extern _X_EXPORT pixman_image_t *
- image_from_pict (PicturePtr pict,
-- Bool has_clip,
-- Bool is_src);
-+ Bool has_clip);
- extern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
-
- #endif /* _FB_H_ */
-diff --git a/fb/fbpict.c b/fb/fbpict.c
-index 2fbef15..8057e90 100644
---- a/fb/fbpict.c
-+++ b/fb/fbpict.c
-@@ -163,9 +163,9 @@ fbComposite (CARD8 op,
- if (pMask)
- miCompositeSourceValidate (pMask, xMask, yMask, width, height);
-
-- src = image_from_pict (pSrc, TRUE, TRUE);
-- mask = image_from_pict (pMask, TRUE, TRUE);
-- dest = image_from_pict (pDst, TRUE, FALSE);
-+ src = image_from_pict (pSrc, TRUE);
-+ mask = image_from_pict (pMask, TRUE);
-+ dest = image_from_pict (pDst, TRUE);
-
- if (src && dest && !(pMask && !mask))
- {
-@@ -268,80 +268,24 @@ create_conical_gradient_image (PictGradient *gradient)
- gradient->nstops);
- }
-
--static DrawablePtr
--copy_drawable (DrawablePtr pDraw)
--{
-- ScreenPtr pScreen = pDraw->pScreen;
-- PixmapPtr pPixmap;
-- GCPtr pGC;
-- int width, height;
-- ChangeGCVal gcv[2];
--
-- width = pDraw->width;
-- height = pDraw->height;
--
-- pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, pDraw->depth, 0);
--
-- if (!pPixmap)
-- return NULL;
--
-- pGC = GetScratchGC (pDraw->depth, pScreen);
--
-- if (!pGC)
-- {
-- (*pScreen->DestroyPixmap) (pPixmap);
-- return NULL;
-- }
--
-- /* First fill the pixmap with zeros */
-- gcv[0].val = 0x00000000;
-- gcv[1].val = IncludeInferiors;
-- dixChangeGC (NullClient, pGC, GCBackground | GCSubwindowMode, NULL, gcv);
-- ValidateGC ((DrawablePtr)pPixmap, pGC);
-- miClearDrawable ((DrawablePtr)pPixmap, pGC);
--
-- /* Then copy the window there */
-- ValidateGC(&pPixmap->drawable, pGC);
-- (* pGC->ops->CopyArea) (pDraw, &pPixmap->drawable, pGC, 0, 0, width, height, 0, 0);
--
-- FreeScratchGC (pGC);
--
-- return &pPixmap->drawable;
--}
--
--static void
--destroy_drawable (pixman_image_t *image, void *data)
--{
-- DrawablePtr pDrawable = data;
-- ScreenPtr pScreen = pDrawable->pScreen;
--
-- pScreen->DestroyPixmap ((PixmapPtr)pDrawable);
--}
--
- static pixman_image_t *
- create_bits_picture (PicturePtr pict,
-- Bool has_clip,
-- Bool is_src)
-+ Bool has_clip)
- {
- FbBits *bits;
- FbStride stride;
- int bpp, xoff, yoff;
- pixman_image_t *image;
-- DrawablePtr drawable;
--
-- if (is_src && pict->pDrawable->type == DRAWABLE_WINDOW)
-- drawable = copy_drawable (pict->pDrawable);
-- else
-- drawable = pict->pDrawable;
-
-- fbGetDrawable (drawable, bits, stride, bpp, xoff, yoff);
-+ fbGetDrawable (pict->pDrawable, bits, stride, bpp, xoff, yoff);
-
- bits = (FbBits*)((CARD8*)bits +
-- (drawable->y + yoff) * stride * sizeof(FbBits) +
-- (drawable->x + xoff) * (bpp / 8));
-+ (pict->pDrawable->y + yoff) * stride * sizeof(FbBits) +
-+ (pict->pDrawable->x + xoff) * (bpp / 8));
-
- image = pixman_image_create_bits (
-- pict->format, drawable->width, drawable->height,
-+ pict->format,
-+ pict->pDrawable->width, pict->pDrawable->height,
- (uint32_t *)bits, stride * sizeof (FbStride));
-
-
-@@ -359,46 +303,25 @@ create_bits_picture (PicturePtr pict,
- #endif
- #endif
-
-+ /* pCompositeClip is undefined for source pictures, so
-+ * only set the clip region for pictures with drawables
-+ */
- if (has_clip)
- {
-- if (is_src)
-- {
-- if (pict->clientClipType != CT_NONE)
-- {
-- pixman_image_set_has_client_clip (image, TRUE);
-+ if (pict->clientClipType != CT_NONE)
-+ pixman_image_set_has_client_clip (image, TRUE);
-
-- pixman_region_translate (pict->clientClip,
-- pict->clipOrigin.x,
-- pict->clipOrigin.y);
--
-- pixman_image_set_clip_region (image, pict->clientClip);
-+ pixman_region_translate (pict->pCompositeClip, - pict->pDrawable->x, - pict->pDrawable->y);
-
-- pixman_region_translate (pict->clientClip,
-- - pict->clipOrigin.x,
-- - pict->clipOrigin.y);
-- }
-- }
-- else
-- {
-- pixman_region_translate (pict->pCompositeClip,
-- - pict->pDrawable->x,
-- - pict->pDrawable->y);
-+ pixman_image_set_clip_region (image, pict->pCompositeClip);
-
-- pixman_image_set_clip_region (image, pict->pCompositeClip);
--
-- pixman_region_translate (pict->pCompositeClip,
-- pict->pDrawable->x,
-- pict->pDrawable->y);
-- }
-+ pixman_region_translate (pict->pCompositeClip, pict->pDrawable->x, pict->pDrawable->y);
- }
-
- /* Indexed table */
- if (pict->pFormat->index.devPrivate)
- pixman_image_set_indexed (image, pict->pFormat->index.devPrivate);
-
-- if (drawable != pict->pDrawable)
-- pixman_image_set_destroy_function (image, destroy_drawable, drawable);
--
- return image;
- }
-
-@@ -438,7 +361,7 @@ set_image_properties (pixman_image_t *image, PicturePtr pict)
-
- if (pict->alphaMap)
- {
-- pixman_image_t *alpha_map = image_from_pict (pict->alphaMap, TRUE, TRUE);
-+ pixman_image_t *alpha_map = image_from_pict (pict->alphaMap, TRUE);
-
- pixman_image_set_alpha_map (
- image, alpha_map, pict->alphaOrigin.x, pict->alphaOrigin.y);
-@@ -472,8 +395,7 @@ set_image_properties (pixman_image_t *image, PicturePtr pict)
-
- pixman_image_t *
- image_from_pict (PicturePtr pict,
-- Bool has_clip,
-- Bool is_src)
-+ Bool has_clip)
- {
- pixman_image_t *image = NULL;
-
-@@ -482,7 +404,7 @@ image_from_pict (PicturePtr pict,
-
- if (pict->pDrawable)
- {
-- image = create_bits_picture (pict, has_clip, is_src);
-+ image = create_bits_picture (pict, has_clip);
- }
- else if (pict->pSourcePict)
- {
-diff --git a/fb/fbtrap.c b/fb/fbtrap.c
-index b1e1eff..830603a 100644
---- a/fb/fbtrap.c
-+++ b/fb/fbtrap.c
-@@ -40,7 +40,7 @@ fbAddTraps (PicturePtr pPicture,
- int ntrap,
- xTrap *traps)
- {
-- pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
-+ pixman_image_t *image = image_from_pict (pPicture, FALSE);
-
- if (!image)
- return;
-@@ -56,7 +56,7 @@ fbRasterizeTrapezoid (PicturePtr pPicture,
- int x_off,
- int y_off)
- {
-- pixman_image_t *image = image_from_pict (pPicture, FALSE, FALSE);
-+ pixman_image_t *image = image_from_pict (pPicture, FALSE);
-
- if (!image)
- return;
---
-cgit v0.8.3-6-g21f6
Deleted: xserver-1.7.1-nvidia-performance.patch
===================================================================
--- xserver-1.7.1-nvidia-performance.patch 2010-01-31 11:21:38 UTC (rev 66499)
+++ xserver-1.7.1-nvidia-performance.patch 2010-01-31 11:41:57 UTC (rev 66500)
@@ -1,58 +0,0 @@
-This patch speeds up a simple test app that maps a 1x1 ARGB window from 11
-seconds to 0.005 seconds.
-
-This patch needs to be applied after
-http://cvs.fedora.redhat.com/viewvc/rpms/xorg-x11-server/F-12/xserver-1.7.1-window-pictures.patch?revision=1.4&view=markup
-or the server will still be subject to the corruption and crash bugs that
-e9aa61e introduced.
-
- fb/fbpict.c | 27 ++++++++++++++++++++++++++-
- 1 files changed, 26 insertions(+), 1 deletions(-)
-
-diff --git a/fb/fbpict.c b/fb/fbpict.c
-index 5c96427..5799e37 100644
---- a/fb/fbpict.c
-+++ b/fb/fbpict.c
-@@ -317,6 +317,27 @@ destroy_drawable (pixman_image_t *image, void *data)
- pScreen->DestroyPixmap ((PixmapPtr)pDrawable);
- }
-
-+/*
-+ * Returns TRUE when the specified window is fully contained within its bounding
-+ * pixmap.
-+ */
-+static Bool
-+window_is_fully_contained(WindowPtr pWin)
-+{
-+ PixmapPtr pBoundingPix = (*pWin->drawable.pScreen->GetWindowPixmap)(pWin);
-+ int x = pWin->drawable.x, y = pWin->drawable.y;
-+
-+#ifdef COMPOSITE
-+ /* Translate from screen coordinates to pixmap coordinates */
-+ x -= pBoundingPix->screen_x;
-+ y -= pBoundingPix->screen_y;
-+#endif
-+
-+ return x >= 0 && y >= 0 &&
-+ x + pWin->drawable.width <= pBoundingPix->drawable.width &&
-+ y + pWin->drawable.height <= pBoundingPix->drawable.height;
-+}
-+
- static pixman_image_t *
- create_bits_picture (PicturePtr pict,
- Bool has_clip,
-@@ -328,7 +349,11 @@ create_bits_picture (PicturePtr pict,
- pixman_image_t *image;
- DrawablePtr drawable;
-
-- if (is_src && pict->pDrawable->type == DRAWABLE_WINDOW)
-+ /* Copy the source window if part of it lies outside its bounding pixmap to
-+ * avoid reading outside that pixmap' bounds, since Pixman doesn't clip the
-+ * source image per pixel */
-+ if (is_src && pict->pDrawable->type == DRAWABLE_WINDOW &&
-+ !window_is_fully_contained((WindowPtr)pict->pDrawable))
- drawable = copy_drawable (pict->pDrawable);
- else
- drawable = pict->pDrawable;
---
-1.6.3.3
Deleted: xserver-1.7.1-window-pictures.patch
===================================================================
--- xserver-1.7.1-window-pictures.patch 2010-01-31 11:21:38 UTC (rev 66499)
+++ xserver-1.7.1-window-pictures.patch 2010-01-31 11:41:57 UTC (rev 66500)
@@ -1,58 +0,0 @@
-From 9f493b930ef99253ba7e37dc280daff6738b6401 Mon Sep 17 00:00:00 2001
-From: Soren Sandmann Pedersen <sandmann at redhat.com>
-Date: Fri, 6 Nov 2009 10:29:49 +1000
-Subject: [PATCH] [PATCH] fb: Use fb functions to copy the window to a temporary pixmap.
-
-Previously, it would use the screen ops, but this meant that the new
-pixmap would be created by the DDX and then immediately accessed by
-software fallbacks without the DDX having a chance to map the drawable
-correctly.
-
-Instead, use fbCreatePixmap() and fbCopyArea() directly, without going
-through the DDX hooks.
-
-airlied: also remove the miClearDrawable call, since we are going
-to copy over the whole drawable, and this also reenters the wrap
-chain which confuses EXA.
----
- fb/fbpict.c | 7 +++----
- 1 files changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/fb/fbpict.c b/fb/fbpict.c
-index 2fbef15..5c96427 100644
---- a/fb/fbpict.c
-+++ b/fb/fbpict.c
-@@ -280,7 +280,7 @@ copy_drawable (DrawablePtr pDraw)
- width = pDraw->width;
- height = pDraw->height;
-
-- pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, pDraw->depth, 0);
-+ pPixmap = fbCreatePixmap (pScreen, width, height, pDraw->depth, 0);
-
- if (!pPixmap)
- return NULL;
-@@ -289,7 +289,7 @@ copy_drawable (DrawablePtr pDraw)
-
- if (!pGC)
- {
-- (*pScreen->DestroyPixmap) (pPixmap);
-+ fbDestroyPixmap (pPixmap);
- return NULL;
- }
-
-@@ -298,11 +298,10 @@ copy_drawable (DrawablePtr pDraw)
- gcv[1].val = IncludeInferiors;
- dixChangeGC (NullClient, pGC, GCBackground | GCSubwindowMode, NULL, gcv);
- ValidateGC ((DrawablePtr)pPixmap, pGC);
-- miClearDrawable ((DrawablePtr)pPixmap, pGC);
-
- /* Then copy the window there */
- ValidateGC(&pPixmap->drawable, pGC);
-- (* pGC->ops->CopyArea) (pDraw, &pPixmap->drawable, pGC, 0, 0, width, height, 0, 0);
-+ fbCopyArea (pDraw, &pPixmap->drawable, pGC, 0, 0, width, height, 0, 0);
-
- FreeScratchGC (pGC);
-
---
-1.6.5.2
-
More information about the arch-commits
mailing list