ChangeLog | 179 +++++++++++++++ configure.ac | 4 debian/changelog | 7 debian/patches/12-Add-libudev-input-hotplug-backend.diff | 4 dix/devices.c | 3 dix/events.c | 9 exa/exa_migration_mixed.c | 3 exa/exa_offscreen.c | 25 -- hw/xfree86/common/xf86Config.c | 2 hw/xfree86/common/xf86xv.c | 4 xkb/xkbAccessX.c | 2 11 files changed, 201 insertions(+), 41 deletions(-)
New commits: commit 992cfa1dabce8a8e44bb8b1c3bbf46e2070c2ee0 Author: Brice Goglin <bgog...@debian.org> Date: Sat Dec 12 17:46:50 2009 +0100 Prepare Changelog for upload diff --git a/debian/changelog b/debian/changelog index 7af9e88..1f303cf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xorg-server (2:1.7.3.901-1) UNRELEASED; urgency=low +xorg-server (2:1.7.3.901-1) experimental; urgency=low [ Julien Cristau ] * Enable GLX 1.4 on DRI2 and swrast (from upstream, via F12). @@ -11,7 +11,7 @@ xorg-server (2:1.7.3.901-1) UNRELEASED; urgency=low * New upstream release. + Refresh patches. - -- Timo Aaltonen <tjaal...@ubuntu.com> Fri, 04 Dec 2009 15:08:55 +0200 + -- Brice Goglin <bgog...@debian.org> Sat, 12 Dec 2009 17:46:45 +0100 xorg-server (2:1.7.2-2) experimental; urgency=low commit 31ad9153cf9c71b93b5f33bcd3ce18c3d30d1a9d Author: Brice Goglin <bgog...@debian.org> Date: Sat Dec 12 17:46:17 2009 +0100 Refresh patches diff --git a/debian/changelog b/debian/changelog index 29bf010..7af9e88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ xorg-server (2:1.7.3.901-1) UNRELEASED; urgency=low [ Brice Goglin ] * New upstream release. + + Refresh patches. -- Timo Aaltonen <tjaal...@ubuntu.com> Fri, 04 Dec 2009 15:08:55 +0200 diff --git a/debian/patches/12-Add-libudev-input-hotplug-backend.diff b/debian/patches/12-Add-libudev-input-hotplug-backend.diff index e764f6e..8df99fd 100644 --- a/debian/patches/12-Add-libudev-input-hotplug-backend.diff +++ b/debian/patches/12-Add-libudev-input-hotplug-backend.diff @@ -657,8 +657,8 @@ index 40f65bd..12f9d49 100644 +#endif + xf86Msg(X_INFO, "The server relies on %s to provide the list of " "input devices.\n\tIf no devices become available, " -- "reconfigure HAL or disable AllowEmptyInput.\n"); -+ "reconfigure %s or disable AllowEmptyInput.\n", +- "reconfigure HAL or disable AutoAddDevices.\n"); ++ "reconfigure %s or disable AutoAddDevices.\n", + config_backend, config_backend); #else - xf86Msg(X_INFO, "HAL is disabled and no input devices were configured.\n" commit 1e80410a6793c6f988e63f6d0bbc4c476b92681e Author: Brice Goglin <bgog...@debian.org> Date: Sat Dec 12 17:38:38 2009 +0100 New upstream release candidate diff --git a/ChangeLog b/ChangeLog index 2860488..6aa027f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +commit 601db11ffc49343807cf562175c2fe51eb6ec056 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Dec 11 15:34:05 2009 +1000 + + xserver 1.7.3.901 + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + +commit 441673906fbe58a877034d478eb04c4b0f9413c3 +Merge: 7ef49cb aea5ace +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Tue Dec 8 11:45:51 2009 +1000 + + Merge branch 'server-1.7-branch' into server-1.7-nominations + commit aea5ace1ee331fab0b72885ce0d5d3fc235e0708 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Dec 3 11:57:16 2009 +1000 @@ -36,6 +51,170 @@ Date: Sun Nov 29 12:06:26 2009 -0800 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> (cherry picked from commit 155e61a9f0429bf28ce493c0fe7a2d076cb7e137) +commit 7ef49cbe702ab00913cb5c55d35b110cd81481aa +Author: Luc Verhaegen <l...@skynet.be> +Date: Wed Nov 11 15:52:39 2009 +0100 + + [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) + +commit 21bf1de28c7f10bcee1b199cc976d58319dc9ecd +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Nov 27 16:01:53 2009 +1000 + + 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) + +commit e840999ffc93ecb2d870dfed334e093ca1e5e65b +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Nov 27 16:20:13 2009 +1000 + + 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) + +commit 51aad8bebca938a41837ad73c98a0039665fa22f +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Fri Oct 30 12:11:41 2009 +1000 + + 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) + +commit abb0a5c11e25733bcbcbbe4fdd8d54feb7786e63 +Author: Peter Hutterer <peter.hutte...@who-t.net> +Date: Tue Dec 1 14:38:19 2009 +1000 + + xfree86: tell users to disable AutoAddDevices, not AllowEmptyInput. + + Technically, disabling AEI is the right suggestion. AEI off forces the + server to init the built-in defaults for input devices (or pick the first + one from the config file). At the same time, hotplugging is still available + with AEI off. + + Unfortunatly, in the vast majority of cases users want to simply disable + hotplugging or have a working server while the local HAL configuration is + broken or missing. Disabling AEI will lead to duplicate events, triple + keystrokes, etc. once the configuration works again. + It's not actually required to remove AEI once hotplugging works again, + though it will in many cases lead to a setup that appears broken. + + Asking users to disable AutoAddDevices instead means those users disable + hotplugging, can then fix the HAL setup and they _must_ remove the config + line again to test if hotplugging works again. Which doesn't leave them with + a broken config once everything is working nice and dandy. Less bugreports, + everybody wins. + + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + Acked-by: Dan Nicholson <dbn.li...@gmail.com> + Acked-by: Daniel Stone <dan...@fooishbar.org> + Acked-by: Rémi Cardona <r...@gentoo.org> + Acked-by: James Cloos <cl...@jhcloos.com> + (cherry picked from commit 761ae22f880bd79550ccf93d321b8a28b3755956) + +commit b8623569a3acff31cb18a9f6046e60d0637cc0e0 +Author: Gaetan Nadon <mems...@videotron.ca> +Date: Sat Nov 28 21:32:47 2009 -0500 + + configure.ac: error while checking for XDMXCONFIG_DEP + + Introduced in commit 9998105a387e0294054502331a56e1e020cd93e4 + The replacement third parameters to PKG_CHECK_MODULES([DMXMODULES] + was not quoted. + + Signed-off-by: Gaetan Nadon <mems...@videotron.ca> + Reviewed-by: Dan Nicholson <dbn.li...@gmail.com> + Tested-by: Julien Cristau <jcris...@debian.org> + Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> + (cherry picked from commit 91c1bd78f7240c92702828f8e5a6b6ce944b9e36) + +commit dde1f688006e08e26a8a43d0dbb877b8ea169825 +Author: Michel Dänzer <daen...@vmware.com> +Date: Mon Nov 30 13:17:52 2009 +0100 + + 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) + +commit 17a1614c3b7410581d885be5f8f76aa7b3e2c070 +Author: Ben Skeggs <bske...@redhat.com> +Date: Sat Oct 24 10:45:49 2009 +1000 + + 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 ] + +commit 155e61a9f0429bf28ce493c0fe7a2d076cb7e137 +Author: Aaron Plattner <aplatt...@nvidia.com> +Date: Sun Nov 29 12:06:26 2009 -0800 + + 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> + commit 1fff1b37a91c989c046d96d961862d592a307496 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Nov 27 14:58:57 2009 +1000 diff --git a/debian/changelog b/debian/changelog index 2bfe403..29bf010 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xorg-server (2:1.7.3-1) UNRELEASED; urgency=low +xorg-server (2:1.7.3.901-1) UNRELEASED; urgency=low [ Julien Cristau ] * Enable GLX 1.4 on DRI2 and swrast (from upstream, via F12). @@ -7,7 +7,7 @@ xorg-server (2:1.7.3-1) UNRELEASED; urgency=low * Update input_id to the version in udev 149. * Update xserver-xorg-core bug script to run udevadm info instead of lshal. - [ Timo Aaltonen ] + [ Brice Goglin ] * New upstream release. -- Timo Aaltonen <tjaal...@ubuntu.com> Fri, 04 Dec 2009 15:08:55 +0200 commit 601db11ffc49343807cf562175c2fe51eb6ec056 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Dec 11 15:34:05 2009 +1000 xserver 1.7.3.901 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 0c98bf2..e501a37 100644 --- a/configure.ac +++ b/configure.ac @@ -26,8 +26,8 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.57) -AC_INIT([xorg-server], 1.7.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2009-12-3" +AC_INIT([xorg-server], 1.7.3.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2009-12-11" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([dist-bzip2 foreign]) AM_MAINTAINER_MODE commit 7ef49cbe702ab00913cb5c55d35b110cd81481aa Author: Luc Verhaegen <l...@skynet.be> Date: Wed Nov 11 15:52:39 2009 +0100 [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); commit 21bf1de28c7f10bcee1b199cc976d58319dc9ecd Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Nov 27 16:01:53 2009 +1000 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; } /** commit e840999ffc93ecb2d870dfed334e093ca1e5e65b Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Nov 27 16:20:13 2009 +1000 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; commit 51aad8bebca938a41837ad73c98a0039665fa22f Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Fri Oct 30 12:11:41 2009 +1000 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, commit abb0a5c11e25733bcbcbbe4fdd8d54feb7786e63 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Tue Dec 1 14:38:19 2009 +1000 xfree86: tell users to disable AutoAddDevices, not AllowEmptyInput. Technically, disabling AEI is the right suggestion. AEI off forces the server to init the built-in defaults for input devices (or pick the first one from the config file). At the same time, hotplugging is still available with AEI off. Unfortunatly, in the vast majority of cases users want to simply disable hotplugging or have a working server while the local HAL configuration is broken or missing. Disabling AEI will lead to duplicate events, triple keystrokes, etc. once the configuration works again. It's not actually required to remove AEI once hotplugging works again, though it will in many cases lead to a setup that appears broken. Asking users to disable AutoAddDevices instead means those users disable hotplugging, can then fix the HAL setup and they _must_ remove the config line again to test if hotplugging works again. Which doesn't leave them with a broken config once everything is working nice and dandy. Less bugreports, everybody wins. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Acked-by: Dan Nicholson <dbn.li...@gmail.com> Acked-by: Daniel Stone <dan...@fooishbar.org> Acked-by: Rémi Cardona <r...@gentoo.org> Acked-by: James Cloos <cl...@jhcloos.com> (cherry picked from commit 761ae22f880bd79550ccf93d321b8a28b3755956) diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index 40f65bd..e1283f9 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -1456,7 +1456,7 @@ checkCoreInputDevices(serverLayoutPtr servlayoutp, Bool implicitLayout) #ifdef CONFIG_HAL xf86Msg(X_INFO, "The server relies on HAL to provide the list of " "input devices.\n\tIf no devices become available, " - "reconfigure HAL or disable AllowEmptyInput.\n"); + "reconfigure HAL or disable AutoAddDevices.\n"); #else xf86Msg(X_INFO, "HAL is disabled and no input devices were configured.\n" "\tTry disabling AllowEmptyInput.\n"); commit b8623569a3acff31cb18a9f6046e60d0637cc0e0 Author: Gaetan Nadon <mems...@videotron.ca> Date: Sat Nov 28 21:32:47 2009 -0500 configure.ac: error while checking for XDMXCONFIG_DEP Introduced in commit 9998105a387e0294054502331a56e1e020cd93e4 The replacement third parameters to PKG_CHECK_MODULES([DMXMODULES] was not quoted. Signed-off-by: Gaetan Nadon <mems...@videotron.ca> Reviewed-by: Dan Nicholson <dbn.li...@gmail.com> Tested-by: Julien Cristau <jcris...@debian.org> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> (cherry picked from commit 91c1bd78f7240c92702828f8e5a6b6ce944b9e36) diff --git a/configure.ac b/configure.ac index 8500db4..1038734 100644 --- a/configure.ac +++ b/configure.ac @@ -1808,11 +1808,15 @@ AM_CONDITIONAL(XQUARTZ_SPARKLE, [test "x$XQUARTZ_SPARKLE" != "xno"]) AM_CONDITIONAL(STANDALONE_XPBPROXY, [test "x$STANDALONE_XPBPROXY" = xyes]) dnl DMX DDX -PKG_CHECK_MODULES([DMXMODULES], - [xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES], - PKG_CHECK_MODULES([XDMXCONFIG_DEP], [xaw7 xmu xt xpm x11], [have_dmx=yes], - [have_dmx=no]), - [have_dmx=no]) +PKG_CHECK_MODULES( + [DMXMODULES], + [xmuu $LIBXEXT x11 xrender xfixes xfont $LIBXI $DMXPROTO xau $XDMCP_MODULES], + [PKG_CHECK_MODULES( + [XDMXCONFIG_DEP], + [xaw7 xmu xt xpm x11], + [have_dmx=yes], + [have_dmx=no])], + [have_dmx=no]) AC_MSG_CHECKING([whether to build Xdmx DDX]) if test "x$DMX" = xauto; then DMX="$have_dmx" commit dde1f688006e08e26a8a43d0dbb877b8ea169825 Author: Michel Dänzer <daen...@vmware.com> Date: Mon Nov 30 13:17:52 2009 +0100 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); commit 17a1614c3b7410581d885be5f8f76aa7b3e2c070 Author: Ben Skeggs <bske...@redhat.com> Date: Sat Oct 24 10:45:49 2009 +1000 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); } commit 155e61a9f0429bf28ce493c0fe7a2d076cb7e137 Author: Aaron Plattner <aplatt...@nvidia.com> Date: Sun Nov 29 12:06:26 2009 -0800 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; -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org