[arch-commits] Commit in xorg-server/repos (10 files)

Ionut Biru ibiru at archlinux.org
Mon Dec 7 15:30:06 UTC 2009


    Date: Monday, December 7, 2009 @ 10:30:05
  Author: ibiru
Revision: 60856

Merged revisions 60211,60217,60854 via svnmerge from 
svn+ssh://gerolde.archlinux.org/srv/svn-packages/xorg-server/trunk

........
  r60211 | jgc | 2009-12-02 12:00:06 +0200 (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 13:52:45 +0200 (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 15:16:53 +0200 (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-i686/dix-fix-memleak.patch
    (from rev 60854, xorg-server/trunk/dix-fix-memleak.patch)
  xorg-server/repos/extra-i686/dix-remove-core-devices-on-shutdown.patch
    (from rev 60854, xorg-server/trunk/dix-remove-core-devices-on-shutdown.patch)
  xorg-server/repos/extra-i686/exa-fix-defragment.patch
    (from rev 60854, xorg-server/trunk/exa-fix-defragment.patch)
  xorg-server/repos/extra-i686/exa-fix-mixed-pixmaps.patch
    (from rev 60854, xorg-server/trunk/exa-fix-mixed-pixmaps.patch)
  xorg-server/repos/extra-i686/fix-repeat-events.patch
    (from rev 60854, xorg-server/trunk/fix-repeat-events.patch)
  xorg-server/repos/extra-i686/revert-bug25136.patch
    (from rev 60854, xorg-server/trunk/revert-bug25136.patch)
  xorg-server/repos/extra-i686/xv-fix-adjustframe-reputimage.patch
    (from rev 60854, xorg-server/trunk/xv-fix-adjustframe-reputimage.patch)
Modified:
  xorg-server/repos/extra-i686/	(properties)
  xorg-server/repos/extra-i686/PKGBUILD
Deleted:
  xorg-server/repos/extra-i686/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-i686
___________________________________________________________________
Modified: svnmerge-integrated
   - /xorg-server/trunk:1-60007
   + /xorg-server/trunk:1-60855

Modified: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD	2009-12-07 13:17:10 UTC (rev 60855)
+++ extra-i686/PKGBUILD	2009-12-07 15:30:05 UTC (rev 60856)
@@ -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-i686/dix-fix-memleak.patch (from rev 60854, xorg-server/trunk/dix-fix-memleak.patch)
===================================================================
--- extra-i686/dix-fix-memleak.patch	                        (rev 0)
+++ extra-i686/dix-fix-memleak.patch	2009-12-07 15:30:05 UTC (rev 60856)
@@ -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-i686/dix-remove-core-devices-on-shutdown.patch (from rev 60854, xorg-server/trunk/dix-remove-core-devices-on-shutdown.patch)
===================================================================
--- extra-i686/dix-remove-core-devices-on-shutdown.patch	                        (rev 0)
+++ extra-i686/dix-remove-core-devices-on-shutdown.patch	2009-12-07 15:30:05 UTC (rev 60856)
@@ -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-i686/exa-fix-defragment.patch (from rev 60854, xorg-server/trunk/exa-fix-defragment.patch)
===================================================================
--- extra-i686/exa-fix-defragment.patch	                        (rev 0)
+++ extra-i686/exa-fix-defragment.patch	2009-12-07 15:30:05 UTC (rev 60856)
@@ -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-i686/exa-fix-mixed-pixmaps.patch (from rev 60854, xorg-server/trunk/exa-fix-mixed-pixmaps.patch)
===================================================================
--- extra-i686/exa-fix-mixed-pixmaps.patch	                        (rev 0)
+++ extra-i686/exa-fix-mixed-pixmaps.patch	2009-12-07 15:30:05 UTC (rev 60856)
@@ -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-i686/fix-abi-break.patch
===================================================================
--- extra-i686/fix-abi-break.patch	2009-12-07 13:17:10 UTC (rev 60855)
+++ extra-i686/fix-abi-break.patch	2009-12-07 15:30:05 UTC (rev 60856)
@@ -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-i686/fix-repeat-events.patch (from rev 60854, xorg-server/trunk/fix-repeat-events.patch)
===================================================================
--- extra-i686/fix-repeat-events.patch	                        (rev 0)
+++ extra-i686/fix-repeat-events.patch	2009-12-07 15:30:05 UTC (rev 60856)
@@ -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-i686/revert-bug25136.patch (from rev 60854, xorg-server/trunk/revert-bug25136.patch)
===================================================================
--- extra-i686/revert-bug25136.patch	                        (rev 0)
+++ extra-i686/revert-bug25136.patch	2009-12-07 15:30:05 UTC (rev 60856)
@@ -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-i686/xv-fix-adjustframe-reputimage.patch (from rev 60854, xorg-server/trunk/xv-fix-adjustframe-reputimage.patch)
===================================================================
--- extra-i686/xv-fix-adjustframe-reputimage.patch	                        (rev 0)
+++ extra-i686/xv-fix-adjustframe-reputimage.patch	2009-12-07 15:30:05 UTC (rev 60856)
@@ -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