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