xserver: Branch 'server-1.7-branch' - 11 commits

Peter Hutterer whot at kemper.freedesktop.org
Thu Dec 10 22:10:22 PST 2009


 configure.ac                   |    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 ++
 8 files changed, 16 insertions(+), 36 deletions(-)

New commits:
commit 601db11ffc49343807cf562175c2fe51eb6ec056
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Fri Dec 11 15:34:05 2009 +1000

    xserver 1.7.3.901
    
    Signed-off-by: Peter Hutterer <peter.hutterer at 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 441673906fbe58a877034d478eb04c4b0f9413c3
Merge: 7ef49cb... aea5ace...
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Dec 8 11:45:51 2009 +1000

    Merge branch 'server-1.7-branch' into server-1.7-nominations

commit 7ef49cbe702ab00913cb5c55d35b110cd81481aa
Author: Luc Verhaegen <libv at 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 <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);
commit 21bf1de28c7f10bcee1b199cc976d58319dc9ecd
Author: Peter Hutterer <peter.hutterer at 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.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;
 }
 
 /**
commit e840999ffc93ecb2d870dfed334e093ca1e5e65b
Author: Peter Hutterer <peter.hutterer at 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.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;
commit 51aad8bebca938a41837ad73c98a0039665fa22f
Author: Peter Hutterer <peter.hutterer at 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.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,
commit abb0a5c11e25733bcbcbbe4fdd8d54feb7786e63
Author: Peter Hutterer <peter.hutterer at 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.hutterer at who-t.net>
    Acked-by: Dan Nicholson <dbn.lists at gmail.com>
    Acked-by: Daniel Stone <daniel at fooishbar.org>
    Acked-by: Rémi Cardona <remi at gentoo.org>
    Acked-by: James Cloos <cloos at 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 <memsize at 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 <memsize at videotron.ca>
    Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
    Tested-by: Julien Cristau <jcristau at debian.org>
    Signed-off-by: Peter Hutterer <peter.hutterer at 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 <daenzer at 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 <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);
commit 17a1614c3b7410581d885be5f8f76aa7b3e2c070
Author: Ben Skeggs <bskeggs at 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 <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);
     }
commit 155e61a9f0429bf28ce493c0fe7a2d076cb7e137
Author: Aaron Plattner <aplattner at 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 <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;


More information about the xorg-commit mailing list