[arch-commits] Commit in xorg-server/repos (10 files)
Jan de Groot
jgc at archlinux.org
Mon Dec 7 13:17:10 UTC 2009
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 <jgc at 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.hutterer at 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.hutterer at who-t.net>
+Reviewed-by: Keith Packard <keithp at 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.hutterer at 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.hutterer at who-t.net>
+Reviewed-by: Keith Packard <keithp at 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 <daenzer at 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 <daenzer at vmware.com>
+Signed-off-by: Keith Packard <keithp at 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 <bskeggs at 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 <bskeggs at redhat.com>
+Acked-By: Michel Dänzer <michel at 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 <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>
----
-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.hutterer at 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.hutterer at who-t.net>
+Acked-by: Adam Jackson <ajax at 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 <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
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 <libv at 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 <libv at skynet.be>
+Reviewed-by: Keith Packard <keithp at keithp.com>
+Signed-off-by: Keith Packard <keithp at 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
More information about the arch-commits
mailing list