xserver: Branch 'pci-rework' - 8 commits

Ian Romanick idr at kemper.freedesktop.org
Thu Feb 15 02:16:05 EET 2007


 configure.ac                      |    5 +++
 dix/getevents.c                   |   55 ++++++++++++++++++++------------------
 exa/exa_accel.c                   |    8 +++++
 exa/exa_render.c                  |   18 ++++++++----
 hw/vfb/Xvfb.man.pre               |   13 ++------
 hw/xfree86/os-support/xf86_libc.h |    2 -
 hw/xfree86/xf4bpp/Makefile.am     |    2 -
 include/dix-config.h.in           |    3 ++
 mi/mipointer.c                    |   23 +++++++++++++++
 9 files changed, 85 insertions(+), 44 deletions(-)

New commits:
diff-tree c4fe1bcce1c1e4822e688959b331b47a051d6e0a (from parents)
Merge: e540d572c5acba877b3ce01e7b31e399dac2d44a d570ff7c81858a3174686b46a088f67563b4a2d5
Author: Ian Romanick <idr at us.ibm.com>
Date:   Wed Feb 14 15:39:52 2007 -0800

    Merge branch 'master' of ssh+git://idr@git.freedesktop.org/git/xorg/xserver into pci-rework

diff-tree d570ff7c81858a3174686b46a088f67563b4a2d5 (from 81aa7f059d3cfd8d28420b7932b8ff7e06d67979)
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Wed Feb 14 17:09:33 2007 +1030

    fix: WarpCursor needs to send MotionNotify.

diff --git a/dix/getevents.c b/dix/getevents.c
index 8b2a44d..935112d 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -489,6 +489,7 @@ GetPointerEvents(xEvent *events, DeviceI
     Bool sendValuators = (type == MotionNotify || flags & POINTER_ABSOLUTE);
     DeviceIntPtr cp = inputInfo.pointer;
     int x = 0, y = 0;
+    Bool coreOnly = (pDev == inputInfo.pointer);
 
     /* Sanity checks. */
     if (type != MotionNotify && type != ButtonPress && type != ButtonRelease)
@@ -497,7 +498,7 @@ GetPointerEvents(xEvent *events, DeviceI
     if ((type == ButtonPress || type == ButtonRelease) && !pDev->button)
         return 0;
 
-    if (pDev->coreEvents)
+    if (!coreOnly && pDev->coreEvents)
         num_events = 2;
     else
         num_events = 1;
@@ -507,7 +508,7 @@ GetPointerEvents(xEvent *events, DeviceI
     }
 
     /* Do we need to send a DeviceValuator event? */
-    if (sendValuators) {
+    if (!coreOnly && sendValuators) {
         if ((((num_valuators - 1) / 6) + 1) > MAX_VALUATOR_EVENTS)
             num_valuators = MAX_VALUATOR_EVENTS * 6;
         num_events += ((num_valuators - 1) / 6) + 1;
@@ -521,10 +522,6 @@ GetPointerEvents(xEvent *events, DeviceI
 
     ms = GetTimeInMillis();
 
-    kbp = (deviceKeyButtonPointer *) events;
-    kbp->time = ms;
-    kbp->deviceid = pDev->id;
-
     /* Set x and y based on whether this is absolute or relative, and
      * accelerate if we need to. */
     if (flags & POINTER_ABSOLUTE) {
@@ -602,29 +599,37 @@ GetPointerEvents(xEvent *events, DeviceI
     pDev->valuator->lastx = x;
     pDev->valuator->lasty = y;
 
-    if (type == MotionNotify) {
-        kbp->type = DeviceMotionNotify;
-    }
-    else {
-        if (type == ButtonPress)
-            kbp->type = DeviceButtonPress;
-        else if (type == ButtonRelease)
-            kbp->type = DeviceButtonRelease;
-        kbp->detail = pDev->button->map[buttons];
-    }
+    if (!coreOnly)
+    {
+        kbp = (deviceKeyButtonPointer *) events;
+        kbp->time = ms;
+        kbp->deviceid = pDev->id;
+
+        if (type == MotionNotify) {
+            kbp->type = DeviceMotionNotify;
+        }
+        else {
+            if (type == ButtonPress)
+                kbp->type = DeviceButtonPress;
+            else if (type == ButtonRelease)
+                kbp->type = DeviceButtonRelease;
+            kbp->detail = pDev->button->map[buttons];
+        }
 
-    kbp->root_x = x;
-    kbp->root_y = y;
+        kbp->root_x = x;
+        kbp->root_y = y;
 
-    events++;
-    if (sendValuators) {
-        kbp->deviceid |= MORE_EVENTS;
-        clipValuators(pDev, first_valuator, num_valuators, valuators);
-        events = getValuatorEvents(events, pDev, first_valuator,
-                                   num_valuators, valuators);
+        events++;
+        if (sendValuators) {
+            kbp->deviceid |= MORE_EVENTS;
+            clipValuators(pDev, first_valuator, num_valuators, valuators);
+            events = getValuatorEvents(events, pDev, first_valuator,
+                                       num_valuators, valuators);
+        }
     }
 
-    if (pDev->coreEvents) {
+    /* for some reason inputInfo.pointer does not have coreEvents set */
+    if (coreOnly || pDev->coreEvents) {
         events->u.u.type = type;
         events->u.keyButtonPointer.time = ms;
         events->u.keyButtonPointer.rootX = x;
diff --git a/mi/mipointer.c b/mi/mipointer.c
index dbe2aae..c28911b 100644
--- a/mi/mipointer.c
+++ b/mi/mipointer.c
@@ -474,6 +474,10 @@ void
 miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y,
                      unsigned long time)
 {
+    xEvent* events;
+    int i, nevents;
+    int valuators[2];
+
     SetupScreen(pScreen);
 
     if (pDev && (pDev->coreEvents || pDev == inputInfo.pointer) &&
@@ -488,4 +492,23 @@ miPointerMoved (DeviceIntPtr pDev, Scree
     miPointer.x = x;
     miPointer.y = y;
     miPointer.pScreen = pScreen;
+
+    /* generate motion notify */
+    valuators[0] = x;
+    valuators[1] = y;
+
+    events = (xEvent*)xcalloc(sizeof(xEvent), GetMaximumEventsNum());
+    if (!events)
+    {
+        FatalError("Could not allocate event store.\n");
+        return;
+    }
+
+    nevents = GetPointerEvents(events, pDev, MotionNotify, 0,
+                               POINTER_ABSOLUTE, 0, 2, valuators);
+
+    for (i = 0; i < nevents; i++)
+        mieqEnqueue(pDev, &events[i]);
+
+    xfree(events);
 }
diff-tree 81aa7f059d3cfd8d28420b7932b8ff7e06d67979 (from a5f19c5150a7b3dc2ff3ad759ee1a6ab0ad8925c)
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Feb 14 12:48:15 2007 -0800

    Add missing dirty marking in a couple of fallback cases in the exaGlyphs path.

diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index 6fa481a..e633d80 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -648,6 +648,14 @@ exaPolyFillRect(DrawablePtr pDrawable,
     {
 	exaDoMigration (pixmaps, 1, FALSE);
 	ExaCheckPolyFillRect (pDrawable, pGC, nrect, prect);
+	while (nrect-- >= 0) {
+	    exaDrawableDirty(pDrawable,
+			     pDrawable->x + prect->x,
+			     pDrawable->y + prect->y,
+			     pDrawable->x + prect->x + prect->width,
+			     pDrawable->y + prect->y + prect->height);
+	    prect++;
+	}
 	return;
     } else {
 	exaDoMigration (pixmaps, 1, TRUE);
diff --git a/exa/exa_render.c b/exa/exa_render.c
index a442987..b78d728 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -572,9 +572,7 @@ exaComposite(CARD8	op,
     if (pExaScr->swappedOut ||
 	pSrc->pDrawable == NULL || (pMask != NULL && pMask->pDrawable == NULL))
     {
-	ExaCheckComposite (op, pSrc, pMask, pDst, xSrc, ySrc,
-			   xMask, yMask, xDst, yDst, width, height);
-        return;
+	goto fallback;
     }
 
     /* Remove repeat in source if useless */
@@ -683,12 +681,18 @@ exaComposite(CARD8	op,
 	}
     }
 
+fallback:
 #if DEBUG_TRACE_FALL
     exaPrintCompositeFallback (op, pSrc, pMask, pDst);
 #endif
 
     ExaCheckComposite (op, pSrc, pMask, pDst, xSrc, ySrc,
 		      xMask, yMask, xDst, yDst, width, height);
+    exaDrawableDirty(pDst->pDrawable,
+		     pDst->pDrawable->x + xDst,
+		     pDst->pDrawable->y + yDst,
+		     pDst->pDrawable->x + xDst + width,
+		     pDst->pDrawable->y + yDst + height);
 
 done:
     pSrc->repeat = saveSrcRepeat;
diff-tree a5f19c5150a7b3dc2ff3ad759ee1a6ab0ad8925c (from a492d494f51caf15a5cb979dc335387486c105d1)
Author: Eric Anholt <eric at anholt.net>
Date:   Wed Feb 14 10:39:46 2007 -0800

    Mark sync when UploadToScreen succeeds in exaGlyphs().

diff --git a/exa/exa_render.c b/exa/exa_render.c
index 75108a7..a442987 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -995,15 +995,17 @@ exaGlyphs (CARD8	op,
 	     * First we try to use UploadToScreen, if we can, then we fall back
 	     * to a plain exaCopyArea in case of failure.
 	     */
-	    if (!pExaScr->info->UploadToScreen ||
-		!exaPixmapIsOffscreen(pPixmap) ||
-		!(*pExaScr->info->UploadToScreen) (pPixmap, 0, 0,
+	    if (pExaScr->info->UploadToScreen &&
+		exaPixmapIsOffscreen(pPixmap) &&
+		(*pExaScr->info->UploadToScreen) (pPixmap, 0, 0,
 					glyph->info.width,
 					glyph->info.height,
 					glyphdata,
 					PixmapBytePad(glyph->info.width,
 						      list->format->depth)))
 	    {
+		exaMarkSync (pScreen);
+	    } else {
 		/* Set up the scratch pixmap/GC for doing a CopyArea. */
 		if (pScratchPixmap == NULL) {
 		    /* Get a scratch pixmap to wrap the original glyph data */
diff-tree a492d494f51caf15a5cb979dc335387486c105d1 (from a23b0b069cac8a48e2b306b2095515d75f647705)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Tue Feb 13 18:32:59 2007 -0800

    Update Xvfb man page: remove monolith build instructions, use /var/tmp instead of /usr/tmp

diff --git a/hw/vfb/Xvfb.man.pre b/hw/vfb/Xvfb.man.pre
index f0f5da1..e78e296 100644
--- a/hw/vfb/Xvfb.man.pre
+++ b/hw/vfb/Xvfb.man.pre
@@ -47,13 +47,6 @@ configurations, doing batch processing w
 rendering engine, load testing, as an aid to porting the X server to a
 new platform, and providing an unobtrusive way to run applications
 that don't really need an X server but insist on having one anyway.
-.SH BUILDING
-To build \fIXvfb\fP, put the following in your host.def and remake.
-.PP
-\&#define BuildServer YES /\(** if you aren't already building other servers */
-.br
-\&#define XVirtualFramebufferServer YES
-
 .SH OPTIONS
 .PP
 In addition to the normal server options described in the \fIXserver(1)\fP
@@ -116,14 +109,14 @@ The server will listen for connections a
 default screen configuration (one screen, 1280x1024x12), and screen 1
 will be depth 16 1600x1200.
 .TP 8
-Xvfb -pixdepths 3 27 -fbdir /usr/tmp
+Xvfb -pixdepths 3 27 -fbdir /var/tmp
 The server will listen for connections as server number 0, will have the
 default screen configuration (one screen, 1280x1024x12),
 will also support pixmap
 depths of 3 and 27, 
-and will use memory mapped files in /usr/tmp for the framebuffer.
+and will use memory mapped files in /var/tmp for the framebuffer.
 .TP 8
-xwud -in /usr/tmp/Xvfb_screen0
+xwud -in /var/tmp/Xvfb_screen0
 Displays screen 0 of the server started by the preceding example.
 .SH "SEE ALSO"
 .PP
diff-tree a23b0b069cac8a48e2b306b2095515d75f647705 (from d21c95f80bdba2f29eedd57fb0b00e580391c08e)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Mon Feb 12 17:50:00 2007 -0500

    Typo fix.

diff --git a/hw/xfree86/os-support/xf86_libc.h b/hw/xfree86/os-support/xf86_libc.h
index df78d53..199fcd6 100644
--- a/hw/xfree86/os-support/xf86_libc.h
+++ b/hw/xfree86/os-support/xf86_libc.h
@@ -428,7 +428,7 @@ typedef int xf86jmp_buf[1024];
 #define toupper(i)		xf86toupper(i)
 #undef ungetc
 #define ungetc(i,FP)		xf86ungetc(i,FP)
-#undef vfprinf
+#undef vfprintf
 #define vfprintf(p,f,a)		xf86vfprintf(p,f,a)
 #undef vsnprintf
 #define vsnprintf(s,n,f,a)	xf86vsnprintf(s,n,f,a)
diff-tree d21c95f80bdba2f29eedd57fb0b00e580391c08e (from 46784d24c11767455a4986449a8037295912dcee)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Mon Feb 12 17:22:39 2007 -0500

    Hook up --with-builderstring for vendor build identification.

diff --git a/configure.ac b/configure.ac
index 4a33ac0..92dc5c9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -448,6 +448,9 @@ AC_ARG_WITH(os-name,         AS_HELP_STR
 AC_ARG_WITH(os-vendor,       AS_HELP_STRING([--with-os-vendor=OSVENDOR], [Name of OS vendor]),
 				[ OSVENDOR="$withval" ],
 				[ OSVENDOR="" ])
+AC_ARG_WITH(builderstring,   AS_HELP_STRING([--with-builderstring=BUILDERSTRING], [Additional builder string]),
+				[ BUILDERSTRING="$withval" ]
+				[ ])
 AC_ARG_WITH(mesa-source,     AS_HELP_STRING([--with-mesa-source=MESA_SOURCE], [Path to Mesa source tree]),
                                 [ MESA_SOURCE="$withval" ],
                                 [ MESA_SOURCE="" ])
@@ -934,6 +937,8 @@ AC_DEFINE_UNQUOTED(XORG_MAN_VERSION, ["$
 AC_DEFINE_UNQUOTED(BUILDERADDR, ["$BUILDERADDR"], [Builder address])
 AC_DEFINE_UNQUOTED(OSNAME, ["$OSNAME"], [Operating System Name])
 AC_DEFINE_UNQUOTED(OSVENDOR, ["$OSVENDOR"], [Operating System Vendor])
+AC_DEFINE_UNQUOTED(BUILDERSTRING, ["$BUILDERSTRING"], [Builder string])
+
 AC_SUBST([VENDOR_STRING])
 AC_SUBST([VENDOR_STRING_SHORT])
 AC_SUBST([VENDOR_RELEASE])
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index 1a9fdc5..458e3a1 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -15,6 +15,9 @@
 /* Operating System Vendor */
 #undef OSVENDOR
 
+/* Builder string */
+#undef BUILDERSTRING
+
 /* Default font path */
 #undef COMPILEDDEFAULTFONTPATH
 
diff-tree 46784d24c11767455a4986449a8037295912dcee (from c4b7e9d1c16797c3e4b1200b40aceab5696a7fb8)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date:   Mon Feb 12 17:18:29 2007 -0500

    Remove spurious LIBADD from xf4bpp

diff --git a/hw/xfree86/xf4bpp/Makefile.am b/hw/xfree86/xf4bpp/Makefile.am
index 9af3364..8fddb6b 100644
--- a/hw/xfree86/xf4bpp/Makefile.am
+++ b/hw/xfree86/xf4bpp/Makefile.am
@@ -46,8 +46,6 @@ libxf4bpp_la_SOURCES = \
         mfbzerarc.c \
         vgamodule.c
 
-libxf4bpp_la_LIBADD = ../xf1bpp/libxf1bpp.la
-
 EXTRA_DIST = OScompiler.h ibmTrace.h ppcGCstr.h ppcSpMcro.h vgaReg.h \
              vgaVideo.h wm3.h NOTES
 



More information about the xorg-commit mailing list