Date: Monday, December 7, 2009 @ 08:17:10 Author: jgc Revision: 60855
Merged revisions 60211,60217,60854 via svnmerge from svn+ssh://gerolde.archlinux.org/srv/svn-packages/xorg-server/trunk ........ r60211 | jgc | 2009-12-02 11:00:06 +0100 (Wed, 02 Dec 2009) | 7 lines Disable record extension for now, it's broken anyways record: RECORD extension enabled at configure time. record: This extension is known to be broken, disabling extension now.. record: http://bugs.freedesktop.org/show_bug.cgi?id=20500 ........ r60217 | jgc | 2009-12-02 12:52:45 +0100 (Wed, 02 Dec 2009) | 2 lines Disable config-dbus. It is not used by anything I know about, and upstream doesn't encourage users to use it. So far it was only enabled because we pull in the dbus dependency anyways. ........ r60854 | jgc | 2009-12-07 14:16:53 +0100 (Mon, 07 Dec 2009) | 2 lines upgpkg: xorg-server 1.7.3-1 Add upstream patches. Revert upstream commit that causes crashes on at least intel and ati/amd, reintroduce the fedora patches to fix issues with it ........ Added: xorg-server/repos/extra-x86_64/dix-fix-memleak.patch (from rev 60854, xorg-server/trunk/dix-fix-memleak.patch) xorg-server/repos/extra-x86_64/dix-remove-core-devices-on-shutdown.patch (from rev 60854, xorg-server/trunk/dix-remove-core-devices-on-shutdown.patch) xorg-server/repos/extra-x86_64/exa-fix-defragment.patch (from rev 60854, xorg-server/trunk/exa-fix-defragment.patch) xorg-server/repos/extra-x86_64/exa-fix-mixed-pixmaps.patch (from rev 60854, xorg-server/trunk/exa-fix-mixed-pixmaps.patch) xorg-server/repos/extra-x86_64/fix-repeat-events.patch (from rev 60854, xorg-server/trunk/fix-repeat-events.patch) xorg-server/repos/extra-x86_64/revert-bug25136.patch (from rev 60854, xorg-server/trunk/revert-bug25136.patch) xorg-server/repos/extra-x86_64/xv-fix-adjustframe-reputimage.patch (from rev 60854, xorg-server/trunk/xv-fix-adjustframe-reputimage.patch) Modified: xorg-server/repos/extra-x86_64/ (properties) xorg-server/repos/extra-x86_64/PKGBUILD Deleted: xorg-server/repos/extra-x86_64/fix-abi-break.patch -------------------------------------------+ PKGBUILD | 96 +++++--- dix-fix-memleak.patch | 33 ++ dix-remove-core-devices-on-shutdown.patch | 31 ++ exa-fix-defragment.patch | 67 +++++ exa-fix-mixed-pixmaps.patch | 46 +++ fix-abi-break.patch | 85 ------- fix-repeat-events.patch | 26 ++ revert-bug25136.patch | 331 ++++++++++++++++++++++++++++ xv-fix-adjustframe-reputimage.patch | 38 +++ 9 files changed, 635 insertions(+), 118 deletions(-) Property changes on: xorg-server/repos/extra-x86_64 ___________________________________________________________________ Modified: svnmerge-integrated - /xorg-server/trunk:1-60006 + /xorg-server/trunk:1-60854 Modified: extra-x86_64/PKGBUILD =================================================================== --- extra-x86_64/PKGBUILD 2009-12-07 13:16:53 UTC (rev 60854) +++ extra-x86_64/PKGBUILD 2009-12-07 13:17:10 UTC (rev 60855) @@ -2,14 +2,14 @@ # Maintainer: Jan de Groot <j...@archlinux.org> pkgname=xorg-server -pkgver=1.7.2 -pkgrel=2 +pkgver=1.7.3 +pkgrel=1 pkgdesc="X.Org X servers" arch=('i686' 'x86_64') license=('custom') url="http://xorg.freedesktop.org" depends=('hal>=0.5.13' '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') -makedepends=('libx11>=1.3' 'mesa>=7.6' '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' 'recordproto>=1.14' 'libgl>=7.6' 'glproto>=1.4.10' 'xorg-util-macros>=1.3.0' 'xineramaproto>=1.2') +makedepends=('libx11>=1.3' 'mesa>=7.6' '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.6' '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') options=('!libtool') @@ -18,18 +18,34 @@ install=xorg-server.install source=(${url}/releases/individual/xserver/${pkgname}-${pkgver}.tar.bz2 xorg-redhat-die-ugly-pattern-die-die-die.patch + xserver-1.7.1-window-pictures.patch + xserver-1.7.1-nvidia-performance.patch xserver-1.7.1-libcrypto.patch xserver-1.7.1-sigaction.patch xserver-1.7.1-gamma-kdm-fix.patch - fix-abi-break.patch + exa-fix-mixed-pixmaps.patch + exa-fix-defragment.patch + fix-repeat-events.patch + dix-remove-core-devices-on-shutdown.patch + dix-fix-memleak.patch + xv-fix-adjustframe-reputimage.patch + revert-bug25136.patch xvfb-run xvfb-run.1) -md5sums=('5c087e0f555203065fd90d02ef5f736e' +md5sums=('4c63b22cad9ed8ae8b86561f0f92c327' '1a336eb22e27cbf443ec5a2ecddfa93c' + '01507da1a18737a3a9202fbd00213f4c' + 'd5c6e2de2e15bcff98d69f4772ee09ac' '957d429cad03ac87281b7e40d963497c' '9de9025a8c93b57188fce137b3262d1e' '8eae23916552e609c36ecae1827c2e9d' - 'e7e2ed598b96b1bbaf926657db85967e' + 'ba5389a2b0ded91a7e48bd1cd1d16f54' + '33e209ebfd7ad1ad2489e96a58aa3e2c' + '2df6d883a22d1c9121618cb90347c21e' + '29ce13f606fb2de78e34d4317a9634ea' + 'aa67e7be85a86f922b5582c3bcdb8338' + '955240ad0a18d77ced04fa5d1514de9f' + 'e3b6a19dc7e708b10fac22180a4cb3d3' '52fd3effd80d7bc6c1660d4ecf23d31c' '376c70308715cd2643f7bff936d9934b') @@ -38,6 +54,15 @@ # Get rid of the ugly pattern patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch" || return 1 + # Revert upstream bug 25136: causes crashes on intel and ati hw + patch -Np1 -R -i "${srcdir}/revert-bug25136.patch" || return 1 + + # http://cvs.fedora.redhat.com/viewvc/rpms/xorg-x11-server/F-12/xserver-1.7.1-window-pictures.patch?view=log + patch -Np1 -i "${srcdir}/xserver-1.7.1-window-pictures.patch" || return 1 + + # http://lists.x.org/archives/xorg-devel/2009-November/003569.html + patch -Np1 -i "${srcdir}/xserver-1.7.1-nvidia-performance.patch" || return 1 + # http://cvs.fedora.redhat.com/viewvc/rpms/xorg-x11-server/F-12/xserver-1.7.1-libcrypto.patch?view=log patch -Np1 -i "${srcdir}/xserver-1.7.1-libcrypto.patch" || return 1 @@ -47,8 +72,13 @@ # http://cvs.fedora.redhat.com/viewvc/rpms/xorg-x11-server/F-12/xserver-1.7.1-gamma-kdm-fix.patch?view=log patch -Np1 -i "${srcdir}/xserver-1.7.1-gamma-kdm-fix.patch" || return 1 - # http://cgit.freedesktop.org/xorg/xserver/commit/?id=155e61a9f0429bf28ce493c0fe7a2d076cb7e137 - patch -Np1 -i "${srcdir}/fix-abi-break.patch" || return 1 + # Upstream patches from 1.7-nominations branch + patch -Np1 -i "${srcdir}/exa-fix-mixed-pixmaps.patch" || return 1 + patch -Np1 -i "${srcdir}/exa-fix-defragment.patch" || return 1 + patch -Np1 -i "${srcdir}/fix-repeat-events.patch" || return 1 + patch -Np1 -i "${srcdir}/dix-remove-core-devices-on-shutdown.patch" || return 1 + patch -Np1 -i "${srcdir}/dix-fix-memleak.patch" || return 1 + patch -Np1 -i "${srcdir}/xv-fix-adjustframe-reputimage.patch" || return 1 # Fix dbus config path sed -i -e 's/\$(sysconfdir)/\/etc/' config/Makefile.* || return 1 @@ -56,31 +86,31 @@ autoconf || return 1 ./configure --prefix=/usr \ - --enable-ipv6 \ - --enable-dri \ - --disable-dmx \ - --enable-xvfb \ - --enable-xnest \ - --enable-composite \ - --enable-xcsecurity \ - --enable-xorg \ - --enable-xephyr \ - --enable-glx-tls \ - --enable-kdrive \ - --enable-install-setuid \ - --enable-config-hal \ - --enable-config-dbus \ - --enable-record \ - --disable-xfbdev \ - --disable-xfake \ - --disable-xsdl \ - --disable-static \ - --sysconfdir=/etc/X11 \ - --localstatedir=/var \ - --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/100dpi:unscaled,/usr/share/fonts/75dpi:unscaled,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \ - --with-xkb-path=/usr/share/X11/xkb \ - --with-xkb-output=/var/lib/xkb \ - --with-dri-driver-path=/usr/lib/xorg/modules/dri || return 1 + --enable-ipv6 \ + --enable-dri \ + --disable-dmx \ + --enable-xvfb \ + --enable-xnest \ + --enable-composite \ + --enable-xcsecurity \ + --enable-xorg \ + --enable-xephyr \ + --enable-glx-tls \ + --enable-kdrive \ + --enable-install-setuid \ + --enable-config-hal \ + --disable-config-dbus \ + --disable-record \ + --disable-xfbdev \ + --disable-xfake \ + --disable-xsdl \ + --disable-static \ + --sysconfdir=/etc/X11 \ + --localstatedir=/var \ + --with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/100dpi:unscaled,/usr/share/fonts/75dpi:unscaled,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \ + --with-xkb-path=/usr/share/X11/xkb \ + --with-xkb-output=/var/lib/xkb \ + --with-dri-driver-path=/usr/lib/xorg/modules/dri || return 1 make || return 1 make DESTDIR="${pkgdir}" install || return 1 Copied: xorg-server/repos/extra-x86_64/dix-fix-memleak.patch (from rev 60854, xorg-server/trunk/dix-fix-memleak.patch) =================================================================== --- extra-x86_64/dix-fix-memleak.patch (rev 0) +++ extra-x86_64/dix-fix-memleak.patch 2009-12-07 13:17:10 UTC (rev 60855) @@ -0,0 +1,33 @@ +From 21bf1de28c7f10bcee1b199cc976d58319dc9ecd Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri, 27 Nov 2009 06:01:53 +0000 +Subject: dix: fix memory leak, free event list on shutdown. (#25028) + +X.Org Bug 25028 <http://bugs.freedesktop.org/show_bug.cgi?id=25028> + +Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> +Reviewed-by: Keith Packard <kei...@keithp.com> +(cherry picked from commit c20c8897272427cb3f755a3e28e80a9ad46f08a1) +--- +diff --git a/dix/events.c b/dix/events.c +index 3e23262..1d7ceef 100644 +--- a/dix/events.c ++++ b/dix/events.c +@@ -5086,12 +5086,9 @@ InitEvents(void) + void + CloseDownEvents(void) + { +- int len; +- EventListPtr list; +- +- len = GetEventList(&list); +- while(len--) +- xfree(list[len].event); ++ FreeEventList(InputEventList, InputEventListLen); ++ InputEventListLen = 0; ++ InputEventList = NULL; + } + + /** +-- +cgit v0.8.3-6-g21f6 Copied: xorg-server/repos/extra-x86_64/dix-remove-core-devices-on-shutdown.patch (from rev 60854, xorg-server/trunk/dix-remove-core-devices-on-shutdown.patch) =================================================================== --- extra-x86_64/dix-remove-core-devices-on-shutdown.patch (rev 0) +++ extra-x86_64/dix-remove-core-devices-on-shutdown.patch 2009-12-07 13:17:10 UTC (rev 60855) @@ -0,0 +1,31 @@ +From e840999ffc93ecb2d870dfed334e093ca1e5e65b Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri, 27 Nov 2009 06:20:13 +0000 +Subject: dix: remove core devices when shutting down. (#25028) + +NewInputDeviceRequest (and RemoveDevice) have checks in place to not allow +removal of the VCP/VCK. When shutting down, they need to be cleaned up +nonetheless to free the memory associated. + +X.Org Bug 25028 <http://bugs.freedesktop.org/show_bug.cgi?id=25028> + +Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> +Reviewed-by: Keith Packard <kei...@keithp.com> +(cherry picked from commit 66bb8c6fbdfc0fc0d971aac4ec6f949bb9288c1b) +--- +diff --git a/dix/devices.c b/dix/devices.c +index 395e19a..e3fd456 100644 +--- a/dix/devices.c ++++ b/dix/devices.c +@@ -908,6 +908,9 @@ CloseDownDevices(void) + DeleteInputDeviceRequest(dev); + } + ++ CloseDevice(inputInfo.pointer); ++ CloseDevice(inputInfo.keyboard); ++ + inputInfo.devices = NULL; + inputInfo.off_devices = NULL; + inputInfo.keyboard = NULL; +-- +cgit v0.8.3-6-g21f6 Copied: xorg-server/repos/extra-x86_64/exa-fix-defragment.patch (from rev 60854, xorg-server/trunk/exa-fix-defragment.patch) =================================================================== --- extra-x86_64/exa-fix-defragment.patch (rev 0) +++ extra-x86_64/exa-fix-defragment.patch 2009-12-07 13:17:10 UTC (rev 60855) @@ -0,0 +1,67 @@ +From dde1f688006e08e26a8a43d0dbb877b8ea169825 Mon Sep 17 00:00:00 2001 +From: Michel Dänzer <daen...@vmware.com> +Date: Mon, 30 Nov 2009 12:17:52 +0000 +Subject: EXA: Don't defragment offscreen memory at allocation time. + +Fixes http://bugs.freedesktop.org/show_bug.cgi?id=24300 . + +Offscreen memory allocation can occur from various places, and apparently +doing defragmentation from at least some of them can confuse some driver +acceleration code. + +There's still the regular background defragmentation in the WakeupHandler, +which should manage to keep fragmentation at a reasonable level. + +Signed-off-by: Michel Dänzer <daen...@vmware.com> +Signed-off-by: Keith Packard <kei...@keithp.com> +(cherry picked from commit 8754db77d8169e5ea506a963cebee1a651bcf094) +--- +diff --git a/exa/exa_offscreen.c b/exa/exa_offscreen.c +index eb53b2a..2ec4174 100644 +--- a/exa/exa_offscreen.c ++++ b/exa/exa_offscreen.c +@@ -169,7 +169,7 @@ exaOffscreenAlloc (ScreenPtr pScreen, int size, int align, + { + ExaOffscreenArea *area; + ExaScreenPriv (pScreen); +- int real_size = 0, free_total = 0, largest_avail = 0; ++ int real_size = 0, largest_avail = 0; + #if DEBUG_OFFSCREEN + static int number = 0; + ErrorF("================= ============ allocating a new pixmap %d\n", ++number); +@@ -208,33 +208,10 @@ exaOffscreenAlloc (ScreenPtr pScreen, int size, int align, + if (real_size <= area->size) + break; + +- free_total += area->size; +- + if (area->size > largest_avail) + largest_avail = area->size; + } + +- if (!area && free_total >= size) { +- CARD32 now = GetTimeInMillis(); +- +- /* Don't defragment more than once per second, to avoid adding more +- * overhead than we're trying to prevent +- */ +- if (abs((INT32) (now - pExaScr->lastDefragment)) > 1000) { +- area = ExaOffscreenDefragment(pScreen); +- pExaScr->lastDefragment = now; +- +- if (area) { +- /* adjust size to match alignment requirement */ +- real_size = size + (area->base_offset + area->size - size) % align; +- +- /* does it fit? */ +- if (real_size > area->size) +- area = NULL; +- } +- } +- } +- + if (!area) + { + area = exaFindAreaToEvict(pExaScr, size, align); +-- +cgit v0.8.3-6-g21f6 Copied: xorg-server/repos/extra-x86_64/exa-fix-mixed-pixmaps.patch (from rev 60854, xorg-server/trunk/exa-fix-mixed-pixmaps.patch) =================================================================== --- extra-x86_64/exa-fix-mixed-pixmaps.patch (rev 0) +++ extra-x86_64/exa-fix-mixed-pixmaps.patch 2009-12-07 13:17:10 UTC (rev 60855) @@ -0,0 +1,46 @@ +From 17a1614c3b7410581d885be5f8f76aa7b3e2c070 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs <bske...@redhat.com> +Date: Sat, 24 Oct 2009 00:45:49 +0000 +Subject: EXA: fix mixed-pixmaps issue where we could do accel with pixmap mapped + +The problem occurs in the following situation: + +1. Create Pixmap +2. Software fallback on pixmap: pExaPixmap->pDamage created +3. Accel to pixmap: driver pixmap created, exaPixmapIsOffscreen() now true +4. Software fallback on pixmap +4.1: PrepareAccess() from driver succeeds, so no DFS to system memory copy +4.2: Software rendering... +4.3: (pExaPixmap->pDamage && exaPixmapIsOffscreen()) is true, so we try + to (incorrectly) UTS the data back to the driver pixmap, when we + should just call the driver's FinishAccess() hook. +4.4: fail + +The patch adds an additional check on pExaPixmap->offscreen, which should +(for the cases exaPixmapIsOffscreen() will return true) only be FALSE +when we haven't used PrepareAccess() on the pixmap. + +Signed-off-by: Ben Skeggs <bske...@redhat.com> +Acked-By: Michel Dänzer <mic...@daenzer.net> + +[ Michel Dänzer: This is a 'backport' of commit + 647b79f87a9891225678dc6fc2fbda3bdef8fa9d from master - actually this patch + was submitted first but didn't apply to master anymore, so technically the + other change is a 'forward port' of this one ] +--- +diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c +index f42c9c2..52b18b4 100644 +--- a/exa/exa_migration_mixed.c ++++ b/exa/exa_migration_mixed.c +@@ -202,7 +202,8 @@ void exaFinishAccess_mixed(PixmapPtr pPixmap, int index) + { + ExaPixmapPriv(pPixmap); + +- if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap)) { ++ if (pExaPixmap->pDamage && exaPixmapIsOffscreen(pPixmap) && ++ !pExaPixmap->offscreen) { + DamageRegionProcessPending(&pPixmap->drawable); + exaMoveInPixmap_mixed(pPixmap); + } +-- +cgit v0.8.3-6-g21f6 Deleted: extra-x86_64/fix-abi-break.patch =================================================================== --- extra-x86_64/fix-abi-break.patch 2009-12-07 13:16:53 UTC (rev 60854) +++ extra-x86_64/fix-abi-break.patch 2009-12-07 13:17:10 UTC (rev 60855) @@ -1,85 +0,0 @@ -From 155e61a9f0429bf28ce493c0fe7a2d076cb7e137 Mon Sep 17 00:00:00 2001 -From: Aaron Plattner <aplatt...@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 <aplatt...@nvidia.com> -Tested-by: Julien Cristau <jcris...@debian.org> -Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> ---- -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 Copied: xorg-server/repos/extra-x86_64/fix-repeat-events.patch (from rev 60854, xorg-server/trunk/fix-repeat-events.patch) =================================================================== --- extra-x86_64/fix-repeat-events.patch (rev 0) +++ extra-x86_64/fix-repeat-events.patch 2009-12-07 13:17:10 UTC (rev 60855) @@ -0,0 +1,26 @@ +From 51aad8bebca938a41837ad73c98a0039665fa22f Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri, 30 Oct 2009 02:11:41 +0000 +Subject: Set the source and deviceid for key repeat events (#24785) + +X.Org Bug 24785 <http://bugs.freedesktop.org/show_bug.cgi?id=24785> + +Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> +Acked-by: Adam Jackson <a...@redhat.com> +(cherry picked from commit b584c224a888c9e7f92d7e49021f74232a727c7f) +--- +diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c +index 2fc7642..0d8e4eb 100644 +--- a/xkb/xkbAccessX.c ++++ b/xkb/xkbAccessX.c +@@ -131,6 +131,8 @@ AccessXKeyboardEvent(DeviceIntPtr keybd, + event.time = GetTimeInMillis(); + event.length = sizeof(DeviceEvent); + event.key_repeat = isRepeat; ++ event.sourceid = keybd->id; ++ event.deviceid = keybd->id; + + if (xkbDebugFlags&0x8) { + DebugF("[xkb] AXKE: Key %d %s\n", keyCode, +-- +cgit v0.8.3-6-g21f6 Copied: xorg-server/repos/extra-x86_64/revert-bug25136.patch (from rev 60854, xorg-server/trunk/revert-bug25136.patch) =================================================================== --- extra-x86_64/revert-bug25136.patch (rev 0) +++ extra-x86_64/revert-bug25136.patch 2009-12-07 13:17:10 UTC (rev 60855) @@ -0,0 +1,331 @@ +From c0de621b42bd69e883e15082c7fd35709d545d55 Mon Sep 17 00:00:00 2001 +From: Aaron Plattner <aplatt...@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 <aplatt...@nvidia.com> +Tested-by: Julien Cristau <jcris...@debian.org> +Signed-off-by: Peter Hutterer <peter.hutte...@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 <aplatt...@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 <aplatt...@nvidia.com> +Signed-off-by: Peter Hutterer <peter.hutte...@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 Copied: xorg-server/repos/extra-x86_64/xv-fix-adjustframe-reputimage.patch (from rev 60854, xorg-server/trunk/xv-fix-adjustframe-reputimage.patch) =================================================================== --- extra-x86_64/xv-fix-adjustframe-reputimage.patch (rev 0) +++ extra-x86_64/xv-fix-adjustframe-reputimage.patch 2009-12-07 13:17:10 UTC (rev 60855) @@ -0,0 +1,38 @@ +From 7ef49cbe702ab00913cb5c55d35b110cd81481aa Mon Sep 17 00:00:00 2001 +From: Luc Verhaegen <l...@skynet.be> +Date: Wed, 11 Nov 2009 14:52:39 +0000 +Subject: [PATCH] Xv: Fix AdjustFrame when driver implements ReputImage. + +Finally fixes fd.o #4653, filed more than 4 years ago. + +Patch can be happily applied to all modular Xorg versions. + +Signed-off-by: Luc Verhaegen <l...@skynet.be> +Reviewed-by: Keith Packard <kei...@keithp.com> +Signed-off-by: Keith Packard <kei...@keithp.com> +(cherry picked from commit 0e084d8c71e697a5cf5d5d7c749455ae14bd6eb7) +--- +diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c +index abbe033..8221659 100644 +--- a/hw/xfree86/common/xf86xv.c ++++ b/hw/xfree86/common/xf86xv.c +@@ -1297,7 +1297,7 @@ xf86XVAdjustFrame(int index, int x, int y, int flags) + for(i = pa->nPorts; i > 0; i--, pPort++) { + pPriv = (XvPortRecPrivatePtr)pPort->devPriv.ptr; + +- if(!pPriv->type && (pPriv->isOn == XV_ON)) { /* overlaid still/image */ ++ if(!pPriv->type && (pPriv->isOn != XV_OFF)) { /* overlaid still/image */ + + if(pPriv->pCompositeClip && pPriv->FreeCompositeClip) + REGION_DESTROY(pScreen, pPriv->pCompositeClip); +@@ -1311,7 +1311,7 @@ xf86XVAdjustFrame(int index, int x, int y, int flags) + (pWin->visibility == VisibilityPartiallyObscured))) + { + xf86XVReputImage(pPriv); +- } else { ++ } else if (pPriv->isOn == XV_ON) { + (*pPriv->AdaptorRec->StopVideo)( + pPriv->pScrn, pPriv->DevPriv.ptr, FALSE); + xf86XVRemovePortFromWindow(pWin, pPriv); +-- +cgit v0.8.3-6-g21f6