[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'debian-experimental'



Rebased ref, commits from common ancestor:
commit 14eefa39fc577b0e7611438377a15c5c9a57d3bd
Author: Cyril Brulebois <kibi@debian.org>
Date:   Wed Feb 23 13:36:17 2011 +0100

    Upload to experimental.

diff --git a/debian/changelog b/debian/changelog
index 44474b2..37d8424 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-xorg-server (2:1.9.99.902-3) UNRELEASED; urgency=low
+xorg-server (2:1.9.99.902-3) experimental; urgency=low
 
   * Merge from master up to 93a7399370.
   * New patch: 17-fix-ftbfs-on-sparc.diff; let's try it for real before
     asking for its being merged upstream.
   * Refresh all patches.
 
- -- Cyril Brulebois <kibi@debian.org>  Wed, 23 Feb 2011 12:42:18 +0100
+ -- Cyril Brulebois <kibi@debian.org>  Wed, 23 Feb 2011 13:36:13 +0100
 
 xorg-server (2:1.9.99.902-2) experimental; urgency=low
 

commit 9f41e49ee43df600dbe1e9dd19d41decc7221085
Author: Cyril Brulebois <kibi@debian.org>
Date:   Wed Feb 23 13:35:58 2011 +0100

    Refresh all patches.

diff --git a/debian/changelog b/debian/changelog
index a5b8dee..44474b2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ xorg-server (2:1.9.99.902-3) UNRELEASED; urgency=low
   * Merge from master up to 93a7399370.
   * New patch: 17-fix-ftbfs-on-sparc.diff; let's try it for real before
     asking for its being merged upstream.
+  * Refresh all patches.
 
  -- Cyril Brulebois <kibi@debian.org>  Wed, 23 Feb 2011 12:42:18 +0100
 
diff --git a/debian/patches/02_Add-libnettle-as-option-for-sha1.diff b/debian/patches/02_Add-libnettle-as-option-for-sha1.diff
index 6b2d9af..475bf77 100644
--- a/debian/patches/02_Add-libnettle-as-option-for-sha1.diff
+++ b/debian/patches/02_Add-libnettle-as-option-for-sha1.diff
@@ -10,7 +10,7 @@ Signed-off-by: Julien Cristau <jcristau@debian.org>
 ---
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1360,7 +1360,7 @@ CORE_INCS='-I$(top_srcdir)/include -I$(t
+@@ -1356,7 +1356,7 @@ CORE_INCS='-I$(top_srcdir)/include -I$(t
  
  # SHA1 hashing
  AC_ARG_WITH([sha1],
@@ -19,7 +19,7 @@ Signed-off-by: Julien Cristau <jcristau@debian.org>
                              [choose SHA1 implementation])])
  AC_CHECK_FUNC([SHA1Init], [HAVE_SHA1_IN_LIBC=yes])
  if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_LIBC" = xyes; then
-@@ -1443,6 +1443,16 @@ if test "x$with_sha1" = xlibcrypto; then
+@@ -1439,6 +1439,16 @@ if test "x$with_sha1" = xlibcrypto; then
  		SHA1_CFLAGS="$OPENSSL_CFLAGS"
  	fi
  fi
diff --git a/debian/patches/07-xfree86-fix-build-with-xv-disabled.diff b/debian/patches/07-xfree86-fix-build-with-xv-disabled.diff
index cb86e77..b2d3167 100644
--- a/debian/patches/07-xfree86-fix-build-with-xv-disabled.diff
+++ b/debian/patches/07-xfree86-fix-build-with-xv-disabled.diff
@@ -10,7 +10,7 @@ Subject: [PATCH] xfree86: fix build with xv disabled
 
 --- a/hw/xfree86/modes/xf86Crtc.c
 +++ b/hw/xfree86/modes/xf86Crtc.c
-@@ -3084,6 +3084,7 @@ xf86_crtc_box_area(BoxPtr box)
+@@ -3133,6 +3133,7 @@ xf86_crtc_box_area(BoxPtr box)
      return (int) (box->x2 - box->x1) * (int) (box->y2 - box->y1);
  }
  
@@ -18,7 +18,7 @@ Subject: [PATCH] xfree86: fix build with xv disabled
  /*
   * Return the crtc covering 'box'. If two crtcs cover a portion of
   * 'box', then prefer 'desired'. If 'desired' is NULL, then prefer the crtc
-@@ -3172,6 +3173,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr
+@@ -3221,6 +3222,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr
  
      return ret;
  }
@@ -28,7 +28,7 @@ Subject: [PATCH] xfree86: fix build with xv disabled
  xf86_wrap_crtc_notify (ScreenPtr screen, xf86_crtc_notify_proc_ptr new)
 --- a/hw/xfree86/modes/xf86Crtc.h
 +++ b/hw/xfree86/modes/xf86Crtc.h
-@@ -934,6 +934,7 @@ xf86_hide_cursors (ScrnInfoPtr scrn);
+@@ -1037,6 +1037,7 @@ xf86_hide_cursors (ScrnInfoPtr scrn);
  extern _X_EXPORT void
  xf86_cursors_fini (ScreenPtr screen);
  
@@ -36,7 +36,7 @@ Subject: [PATCH] xfree86: fix build with xv disabled
  /*
   * For overlay video, compute the relevant CRTC and
   * clip video to that.
-@@ -952,6 +953,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr
+@@ -1055,6 +1056,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr
  			    RegionPtr   reg,
  			    INT32	width,
  			    INT32	height);
diff --git a/debian/patches/15-nouveau.diff b/debian/patches/15-nouveau.diff
index 77bbbc4..712c7ec 100644
--- a/debian/patches/15-nouveau.diff
+++ b/debian/patches/15-nouveau.diff
@@ -12,7 +12,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
 
 --- a/glx/glxdri.c
 +++ b/glx/glxdri.c
-@@ -979,6 +979,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -978,6 +978,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
      const __DRIconfig **driConfigs;
      const __DRIextension **extensions;
      int i;
@@ -20,7 +20,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
  
      if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable") ||
  	!DRIQueryDirectRenderingCapable(pScreen, &isCapable) ||
-@@ -1058,7 +1059,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -1057,7 +1058,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
  
      screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
      if (screen->driver == NULL) {
@@ -31,7 +31,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
  		   filename, dlerror());
          goto handle_error;
      }
-@@ -1196,7 +1199,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -1193,7 +1196,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
  
      free(screen);
  
@@ -42,7 +42,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
  }
 --- a/glx/glxdri2.c
 +++ b/glx/glxdri2.c
-@@ -709,6 +709,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -708,6 +708,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
      const __DRIextension **extensions;
      const __DRIconfig **driConfigs;
      int i;
@@ -50,7 +50,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
  
      screen = calloc(1, sizeof *screen);
      if (screen == NULL)
-@@ -735,7 +736,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -734,7 +735,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
  
      screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
      if (screen->driver == NULL) {
@@ -61,7 +61,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
  		   filename, dlerror());
          goto handle_error;
      }
-@@ -829,7 +832,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -826,7 +829,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
  
      free(screen);
  
@@ -72,7 +72,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
  }
 --- a/hw/xfree86/common/xf86pciBus.c
 +++ b/hw/xfree86/common/xf86pciBus.c
-@@ -1118,7 +1118,24 @@ videoPtrToDriverList(struct pci_device *
+@@ -1123,7 +1123,24 @@ videoPtrToDriverList(struct pci_device *
  	    break;
  	case 0x102b:		    driverList[0] = "mga";	break;
  	case 0x10c8:		    driverList[0] = "neomagic"; break;
diff --git a/debian/patches/17-fix-ftbfs-on-sparc.diff b/debian/patches/17-fix-ftbfs-on-sparc.diff
index 0d0bac7..897b111 100644
--- a/debian/patches/17-fix-ftbfs-on-sparc.diff
+++ b/debian/patches/17-fix-ftbfs-on-sparc.diff
@@ -21,11 +21,9 @@ Signed-off-by: Cyril Brulebois <kibi@debian.org>
  hw/xfree86/common/xf86sbusBus.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 
-diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c
-index 8cfac84..181c6ab 100644
 --- a/hw/xfree86/common/xf86sbusBus.c
 +++ b/hw/xfree86/common/xf86sbusBus.c
-@@ -709,6 +709,6 @@ xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec *GDev)
+@@ -709,6 +709,6 @@ xf86SbusConfigureNewDev(void *busData, s
          XNFasprintf(&GDev->busID, "SBUS:%s", promPath);
          free(promPath);
      } else {
@@ -33,6 +31,3 @@ index 8cfac84..181c6ab 100644
 +        XNFasprintf(&GDev->busID, "SBUS:fb%d", sBus->fbNum);
      }
  }
--- 
-1.7.4.1
-
diff --git a/debian/patches/20-update-gpu-pitch.diff b/debian/patches/20-update-gpu-pitch.diff
index d63a1e9..b2208bf 100644
--- a/debian/patches/20-update-gpu-pitch.diff
+++ b/debian/patches/20-update-gpu-pitch.diff
@@ -1,8 +1,6 @@
-diff --git a/exa/exa_mixed.c b/exa/exa_mixed.c
-index 606f1e1..fd1afb2 100644
 --- a/exa/exa_mixed.c
 +++ b/exa/exa_mixed.c
-@@ -175,8 +175,10 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
+@@ -175,8 +175,10 @@ exaModifyPixmapHeader_mixed(PixmapPtr pP
  	depth != pPixmap->drawable.depth ||
  	bitsPerPixel != pPixmap->drawable.bitsPerPixel) {
  	if (pExaPixmap->driverPriv) {
@@ -15,7 +13,7 @@ index 606f1e1..fd1afb2 100644
  
              exaSetAccelBlock(pExaScr, pExaPixmap,
                               width, height, bitsPerPixel);
-@@ -187,8 +189,7 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
+@@ -187,8 +189,7 @@ exaModifyPixmapHeader_mixed(PixmapPtr pP
  	if (has_gpu_copy && pExaPixmap->sys_ptr) {
  	    free(pExaPixmap->sys_ptr);
  	    pExaPixmap->sys_ptr = NULL;

commit 79aa2ef2720d419692636c0dc1558d35ea4f83c4
Author: Cyril Brulebois <kibi@debian.org>
Date:   Wed Feb 23 12:48:13 2011 +0100

    New patch: 17-fix-ftbfs-on-sparc.diff; let's try it for real before asking for its being merged upstream.

diff --git a/debian/changelog b/debian/changelog
index 92d5fa0..a5b8dee 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 xorg-server (2:1.9.99.902-3) UNRELEASED; urgency=low
 
   * Merge from master up to 93a7399370.
+  * New patch: 17-fix-ftbfs-on-sparc.diff; let's try it for real before
+    asking for its being merged upstream.
 
  -- Cyril Brulebois <kibi@debian.org>  Wed, 23 Feb 2011 12:42:18 +0100
 
diff --git a/debian/patches/17-fix-ftbfs-on-sparc.diff b/debian/patches/17-fix-ftbfs-on-sparc.diff
new file mode 100644
index 0000000..0d0bac7
--- /dev/null
+++ b/debian/patches/17-fix-ftbfs-on-sparc.diff
@@ -0,0 +1,38 @@
+From a2164a583a4089dd6ae88ec91c570aab7ece4ae8 Mon Sep 17 00:00:00 2001
+From: Cyril Brulebois <kibi@debian.org>
+Date: Sun, 20 Feb 2011 16:26:13 +0100
+Subject: [PATCH] xfree86: Fix undefined reference to `XNFsprintf' on sparc.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Build failure on sparc:
+| copying selected object files to avoid basename conflicts...
+|   CCLD   Xorg
+| ./.libs/libxorg.a(xf86sbusBus.o): In function `xf86SbusConfigureNewDev':
+| […]/hw/xfree86/common/xf86sbusBus.c:712: undefined reference to `XNFsprintf'
+| collect2: ld returned 1 exit status
+
+Fix typo introduced in:
+  3a9bb93dd178084f4ff1abcea331ca5a62f88ce6
+
+Signed-off-by: Cyril Brulebois <kibi@debian.org>
+---
+ hw/xfree86/common/xf86sbusBus.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c
+index 8cfac84..181c6ab 100644
+--- a/hw/xfree86/common/xf86sbusBus.c
++++ b/hw/xfree86/common/xf86sbusBus.c
+@@ -709,6 +709,6 @@ xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec *GDev)
+         XNFasprintf(&GDev->busID, "SBUS:%s", promPath);
+         free(promPath);
+     } else {
+-        XNFsprintf(&GDev->busID, "SBUS:fb%d", sBus->fbNum);
++        XNFasprintf(&GDev->busID, "SBUS:fb%d", sBus->fbNum);
+     }
+ }
+-- 
+1.7.4.1
+
diff --git a/debian/patches/series b/debian/patches/series
index 9575231..7b03312 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,4 +6,5 @@
 #13_debian_add_xkbpath_env_variable.diff
 15-nouveau.diff
 16-oot-build.diff
+17-fix-ftbfs-on-sparc.diff
 20-update-gpu-pitch.diff

commit a227fa2c604f5b462291e3eff7017bf0f25bf50b
Author: Cyril Brulebois <kibi@debian.org>
Date:   Wed Feb 23 12:43:03 2011 +0100

    Bump changelogs.

diff --git a/ChangeLog b/ChangeLog
index 63e2e0e..c2c788e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,48 @@
+commit 93a73993708b1345c86ec3ec06b02ed236595673
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Feb 21 15:40:40 2011 +1000
+
+    test: write some event → XI1 conversion tests.
+    
+    Don't test everything, but hey, life is short and I'm trying to have one.
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 4cdf1013771bc86fe2f6d9223bc4a46753bc918f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Mon Feb 21 15:32:57 2011 +1000
+
+    dix: a valuator number of 0 is valid (#34510)
+    
+    For all but motion and proximity events, having no valuators is ok.
+    Regression from 1.9, keyboard events are not converted to protocol events.
+    
+    X.Org Bug 34510 <http://bugs.freedesktop.org/show_bug.cgi?id=34510>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Keith Packard <keithp@keithp.com>
+    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+    Tested-by: Timo Aaltonen <timo.aaltonen@canonical.com>
+
+commit b4ef34d4664e0eaac7211f7a22a2025958aa1527
+Author: Maarten Maathuis <madman2003@gmail.com>
+Date:   Sun Feb 20 11:59:41 2011 +0100
+
+    Revert "exa/mixed: Exclude frontbuffer from deferred pixmap handling."
+    
+    This reverts commit 541b25038a5de74411a094570b407c5ae018c2ba.
+    
+    - It turns out that the high latency was a driver problem.
+    - catting a large amount of text turns out to look prettier when the
+      throughput is lower, but it's not worth the loss for a minor
+      improvement that may not even exist on someone else's computer.
+    
+    Reviewed-by: Michel Dänzer <michel@daenzer.net>
+    Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+
 commit 443d75446bcbe7d97a23860a1e2d46c0b7e7cb26
 Author: Keith Packard <keithp@keithp.com>
 Date:   Fri Feb 18 14:46:33 2011 -0800
diff --git a/debian/changelog b/debian/changelog
index 0d5bd6f..92d5fa0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.9.99.902-3) UNRELEASED; urgency=low
+
+  * Merge from master up to 93a7399370.
+
+ -- Cyril Brulebois <kibi@debian.org>  Wed, 23 Feb 2011 12:42:18 +0100
+
 xorg-server (2:1.9.99.902-2) experimental; urgency=low
 
   * Bump dependency on x11proto-randr-dev, needed since xorg-server.pc

commit 93a73993708b1345c86ec3ec06b02ed236595673
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 21 15:40:40 2011 +1000

    test: write some event → XI1 conversion tests.
    
    Don't test everything, but hey, life is short and I'm trying to have one.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Reviewed-by: Daniel Stone <daniel@fooishbar.org>

diff --git a/test/input.c b/test/input.c
index 879e14f..e0e9e6a 100644
--- a/test/input.c
+++ b/test/input.c
@@ -36,6 +36,7 @@
 #include "inputstr.h"
 #include "eventconvert.h"
 #include "exevents.h"
+#include "exglobals.h"
 #include "dixgrabs.h"
 #include "eventstr.h"
 #include "inpututils.h"
@@ -285,6 +286,143 @@ static void dix_event_to_core_conversion(void)
     dix_event_to_core(ET_Motion);
 }
 
+static void
+_dix_test_xi_convert(DeviceEvent *ev, int expected_rc, int expected_count)
+{
+    xEvent *xi;
+    int count = 0;
+    int rc;
+
+    rc = EventToXI((InternalEvent*)ev, &xi, &count);
+    g_assert(rc == expected_rc);
+    g_assert(count >= expected_count);
+    if (count > 0){
+        deviceKeyButtonPointer *kbp = (deviceKeyButtonPointer*)xi;
+        g_assert(kbp->type == IEventBase + ev->type);
+        g_assert(kbp->detail == ev->detail.key);
+        g_assert(kbp->time == ev->time);
+        g_assert((kbp->deviceid & ~MORE_EVENTS) == ev->deviceid);
+        g_assert(kbp->root_x == ev->root_x);
+        g_assert(kbp->root_y == ev->root_y);
+        g_assert(kbp->state == ev->corestate);
+        g_assert(kbp->event_x == 0);
+        g_assert(kbp->event_y == 0);
+        g_assert(kbp->root == ev->root);
+        g_assert(kbp->event == 0);
+        g_assert(kbp->child == 0);
+        g_assert(kbp->same_screen == FALSE);
+
+        while (--count > 0) {
+            deviceValuator *v = (deviceValuator*)&xi[count];
+            g_assert(v->type == DeviceValuator);
+            g_assert(v->num_valuators <= 6);
+        }
+
+
+        free(xi);
+    }
+}
+
+/**
+ * This tests for internal event → XI1 event conversion
+ * - all conversions should generate the right XI event type
+ * - right number of events generated
+ * - extra events are valuators
+ */
+static void dix_event_to_xi1_conversion(void)
+{
+    DeviceEvent ev = {0};
+    int time;
+    int x, y;
+    int state;
+    int detail;
+    const int ROOT_WINDOW_ID = 0x100;
+    int deviceid;
+
+    IEventBase = 80;
+    DeviceValuator      = IEventBase - 1;
+    DeviceKeyPress      = IEventBase + ET_KeyPress;
+    DeviceKeyRelease    = IEventBase + ET_KeyRelease;
+    DeviceButtonPress   = IEventBase + ET_ButtonPress;
+    DeviceButtonRelease = IEventBase + ET_ButtonRelease;
+    DeviceMotionNotify  = IEventBase + ET_Motion;
+    DeviceFocusIn       = IEventBase + ET_FocusIn;
+    DeviceFocusOut      = IEventBase + ET_FocusOut;
+    ProximityIn         = IEventBase + ET_ProximityIn;
+    ProximityOut        = IEventBase + ET_ProximityOut;
+
+    /* EventToXI callocs */
+    x = 0;
+    y = 0;
+    time = 12345;
+    state = 0;
+    detail = 0;
+    deviceid = 4;
+
+    ev.header   = 0xFF;
+
+    ev.header           = 0xFF;
+    ev.length           = sizeof(DeviceEvent);
+    ev.time             = time;
+    ev.root_y           = x;
+    ev.root_x           = y;
+    SetBit(ev.valuators.mask, 0);
+    SetBit(ev.valuators.mask, 1);
+    ev.root             = ROOT_WINDOW_ID;
+    ev.corestate        = state;
+    ev.detail.key       = detail;
+    ev.deviceid         = deviceid;
+
+    /* test all types for bad match */
+    ev.type = ET_KeyPress;         _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_KeyRelease;       _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_ButtonPress;      _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_ButtonRelease;    _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_Motion;           _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_ProximityIn;      _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_ProximityOut;     _dix_test_xi_convert(&ev, Success, 1);
+
+    /* No axes */
+    ClearBit(ev.valuators.mask, 0);
+    ClearBit(ev.valuators.mask, 1);
+    ev.type = ET_KeyPress;         _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_KeyRelease;       _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_ButtonPress;      _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_ButtonRelease;    _dix_test_xi_convert(&ev, Success, 1);
+    ev.type = ET_Motion;           _dix_test_xi_convert(&ev, BadMatch, 0);
+    ev.type = ET_ProximityIn;      _dix_test_xi_convert(&ev, BadMatch, 0);
+    ev.type = ET_ProximityOut;     _dix_test_xi_convert(&ev, BadMatch, 0);
+
+    /* more than 6 axes → 2 valuator events */
+    SetBit(ev.valuators.mask, 0);
+    SetBit(ev.valuators.mask, 1);
+    SetBit(ev.valuators.mask, 2);
+    SetBit(ev.valuators.mask, 3);
+    SetBit(ev.valuators.mask, 4);
+    SetBit(ev.valuators.mask, 5);
+    SetBit(ev.valuators.mask, 6);
+    ev.type = ET_KeyPress;         _dix_test_xi_convert(&ev, Success, 2);
+    ev.type = ET_KeyRelease;       _dix_test_xi_convert(&ev, Success, 2);
+    ev.type = ET_ButtonPress;      _dix_test_xi_convert(&ev, Success, 2);
+    ev.type = ET_ButtonRelease;    _dix_test_xi_convert(&ev, Success, 2);
+    ev.type = ET_Motion;           _dix_test_xi_convert(&ev, Success, 2);
+    ev.type = ET_ProximityIn;      _dix_test_xi_convert(&ev, Success, 2);
+    ev.type = ET_ProximityOut;     _dix_test_xi_convert(&ev, Success, 2);
+
+
+    /* keycode too high */
+    ev.type = ET_KeyPress;
+    ev.detail.key = 256;
+    _dix_test_xi_convert(&ev, Success, 0);
+
+    /* deviceid too high */
+    ev.type = ET_KeyPress;
+    ev.detail.key = 18;
+    ev.deviceid = 128;
+    _dix_test_xi_convert(&ev, Success, 0);
+}
+
+
 static void xi2_struct_sizes(void)
 {
 #define compare(req) \
@@ -1070,6 +1208,7 @@ int main(int argc, char** argv)
     g_test_add_func("/dix/input/attributes", dix_input_attributes);
     g_test_add_func("/dix/input/init-valuators", dix_init_valuators);
     g_test_add_func("/dix/input/event-core-conversion", dix_event_to_core_conversion);
+    g_test_add_func("/dix/input/event-xi1-conversion", dix_event_to_xi1_conversion);
     g_test_add_func("/dix/input/check-grab-values", dix_check_grab_values);
     g_test_add_func("/dix/input/xi2-struct-sizes", xi2_struct_sizes);
     g_test_add_func("/dix/input/grab_matching", dix_grab_matching);

commit 4cdf1013771bc86fe2f6d9223bc4a46753bc918f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Feb 21 15:32:57 2011 +1000

    dix: a valuator number of 0 is valid (#34510)
    
    For all but motion and proximity events, having no valuators is ok.
    Regression from 1.9, keyboard events are not converted to protocol events.
    
    X.Org Bug 34510 <http://bugs.freedesktop.org/show_bug.cgi?id=34510>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Keith Packard <keithp@keithp.com>
    Reviewed-by: Daniel Stone <daniel@fooishbar.org>
    Tested-by: Timo Aaltonen <timo.aaltonen@canonical.com>

diff --git a/dix/eventconvert.c b/dix/eventconvert.c
index 7b894f0..dd1ca46 100644
--- a/dix/eventconvert.c
+++ b/dix/eventconvert.c
@@ -263,8 +263,20 @@ eventToKeyButtonPointer(DeviceEvent *ev, xEvent **xi, int *count)
     num_events = (countValuators(ev, &first) + 5)/6; /* valuator ev */
     if (num_events <= 0)
     {
-        *count = 0;
-        return BadMatch;
+        switch (ev->type)
+        {
+            case ET_KeyPress:
+            case ET_KeyRelease:
+            case ET_ButtonPress:
+            case ET_ButtonRelease:
+                /* no axes is ok */
+                break;
+            case ET_Motion:
+            case ET_ProximityIn:
+            case ET_ProximityOut:
+                *count = 0;
+                return BadMatch;
+        }
     }
 
     num_events++; /* the actual event event */

commit b4ef34d4664e0eaac7211f7a22a2025958aa1527
Author: Maarten Maathuis <madman2003@gmail.com>
Date:   Sun Feb 20 11:59:41 2011 +0100

    Revert "exa/mixed: Exclude frontbuffer from deferred pixmap handling."
    
    This reverts commit 541b25038a5de74411a094570b407c5ae018c2ba.
    
    - It turns out that the high latency was a driver problem.
    - catting a large amount of text turns out to look prettier when the
      throughput is lower, but it's not worth the loss for a minor
      improvement that may not even exist on someone else's computer.
    
    Reviewed-by: Michel Dänzer <michel@daenzer.net>
    Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>

diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c
index 4f49905..fb47151 100644
--- a/exa/exa_migration_mixed.c
+++ b/exa/exa_migration_mixed.c
@@ -138,7 +138,6 @@ void
 exaDamageReport_mixed(DamagePtr pDamage, RegionPtr pRegion, void *closure)
 {
     PixmapPtr pPixmap = closure;
-    ScreenPtr pScreen = pPixmap->drawable.pScreen;
     ExaPixmapPriv(pPixmap);
 
     /* Move back results of software rendering on system memory copy of mixed driver
@@ -150,18 +149,10 @@ exaDamageReport_mixed(DamagePtr pDamage, RegionPtr pRegion, void *closure)
     if (!pExaPixmap->use_gpu_copy && exaPixmapHasGpuCopy(pPixmap)) {
 	ExaScreenPriv(pPixmap->drawable.pScreen);
 
-	/* Front buffer: Don't wait for the block handler to copy back the data.
-	 * This avoids annoying latency if you encounter a lot of software rendering.
-	 */
-	if (pPixmap == pScreen->GetScreenPixmap(pScreen))
-		exaMoveInPixmap_mixed(pPixmap);
-	else {
-		if (pExaScr->deferred_mixed_pixmap &&
-		    pExaScr->deferred_mixed_pixmap != pPixmap)
-		    exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap);
-
-		pExaScr->deferred_mixed_pixmap = pPixmap;
-	}
+	if (pExaScr->deferred_mixed_pixmap &&
+	    pExaScr->deferred_mixed_pixmap != pPixmap)
+	    exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap);
+	pExaScr->deferred_mixed_pixmap = pPixmap;
     }
 }
 


Reply to: