xserver: Branch 'master' - 5 commits
Keith Packard
keithp at kemper.freedesktop.org
Wed Jan 27 14:05:11 PST 2010
README | 38 ++++++++++++++++++++++++++
configure.ac | 13 ++------
fb/fbpict.c | 1
hw/dmx/doc/Makefile.am | 2 -
hw/xfree86/dri2/dri2.c | 44 +++++++++++++++++++++++++-----
hw/xfree86/dri2/dri2.h | 9 ++++++
hw/xfree86/x86emu/ops.c | 70 ++++++++++++++++++++++++++++++------------------
7 files changed, 134 insertions(+), 43 deletions(-)
New commits:
commit a6bd5d2e482a5aa84acb3d4932e2a166d8670ef1
Author: Pierre-Loup A. Griffais <pgriffais at nvidia.com>
Date: Wed Jan 27 14:03:03 2010 -0800
Fix source pictures getting random transforms after 2d6a8f668342a5190cdf43b5.
*xoff and *yoff were uninitialized for source-only pictures.x
Signed-off-by: Pierre-Loup A. Griffais <pgriffais at nvidia.com>
Reviewed-by: Aaron Plattner <aplattner at nvidia.com>
Signed-off-by: Keith Packard <keithp at keithp.com>
diff --git a/fb/fbpict.c b/fb/fbpict.c
index 251754b..dddfce8 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -452,6 +452,7 @@ image_from_pict (PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
else if (sp->type == SourcePictTypeConical)
image = create_conical_gradient_image (gradient);
}
+ *xoff = *yoff = 0;
}
if (image)
commit c3395158678aaab9dca5fc6a812cbe715ddc0e1a
Author: Gaetan Nadon <memsize at videotron.ca>
Date: Fri Jan 15 14:13:18 2010 -0500
packaging: provide a default README file #24206
All modules should have a README file.
The bottom URL section is found in all X.Org README files.
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
Signed-off-by: Gaetan Nadon <memsize at videotron.ca>
Signed-off-by: Keith Packard <keithp at keithp.com>
diff --git a/README b/README
new file mode 100644
index 0000000..b2499a0
--- /dev/null
+++ b/README
@@ -0,0 +1,38 @@
+ X Server
+
+The X server accepts requests from client applications to create windows,
+which are (normally rectangular) "virtual screens" that the client program
+can draw into.
+
+Windows are then composed on the actual screen by the X server
+(or by a separate composite manager) as directed by the window manager,
+which usually communicates with the user via graphical controls such as buttons
+and draggable titlebars and borders.
+
+For a comprehensive overview of X Server and X Window System, consult the
+following article:
+http://en.wikipedia.org/wiki/X_server
+
+All questions regarding this software should be directed at the
+Xorg mailing list:
+
+ http://lists.freedesktop.org/mailman/listinfo/xorg
+
+Please submit bug reports to the Xorg bugzilla:
+
+ https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+
+The master development code repository can be found at:
+
+ git://anongit.freedesktop.org/git/xorg/xserver
+
+ http://cgit.freedesktop.org/xorg/xserver
+
+For patch submission instructions, see:
+
+ http://www.x.org/wiki/Development/Documentation/SubmittingPatches
+
+For more information on the git code manager, see:
+
+ http://wiki.x.org/wiki/GitPage
+
commit f311f2d047120fb816897444d2101465ff5189db
Author: Aaron Plattner <aplattner at nvidia.com>
Date: Wed Jan 13 11:35:52 2010 -0800
DRI2: Allow multiple driver names.
Each driver type (e.g. DRI2DriverDRI or DRI2DriverVDPAU) can have a name in the
driverNames array in DRI2InfoRec. DRI2Connect returns the name for the driver
specified by driverType. Also print names of supported drivers in
DRI2ScreenInit.
Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
Reviewed-by: Kristian Høgsberg <krh at bitplanet.net>
Signed-off-by: Keith Packard <keithp at keithp.com>
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index 3db826e..3d0fa75 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -70,7 +70,8 @@ typedef struct _DRI2Drawable {
typedef struct _DRI2Screen *DRI2ScreenPtr;
typedef struct _DRI2Screen {
- const char *driverName;
+ unsigned int numDrivers;
+ const char **driverNames;
const char *deviceName;
int fd;
unsigned int lastSequence;
@@ -772,14 +773,12 @@ DRI2Connect(ScreenPtr pScreen, unsigned int driverType, int *fd,
{
DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
- if (ds == NULL)
+ if (ds == NULL || driverType >= ds->numDrivers ||
+ !ds->driverNames[driverType])
return FALSE;
- if (driverType != DRI2DriverDRI)
- return BadValue;
-
*fd = ds->fd;
- *driverName = ds->driverName;
+ *driverName = ds->driverNames[driverType];
*deviceName = ds->deviceName;
return TRUE;
@@ -800,6 +799,11 @@ Bool
DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
{
DRI2ScreenPtr ds;
+ const char* driverTypeNames[] = {
+ "DRI", /* DRI2DriverDRI */
+ "VDPAU", /* DRI2DriverVDPAU */
+ };
+ unsigned int i;
if (info->version < 3)
return FALSE;
@@ -815,7 +819,6 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
return FALSE;
ds->fd = info->fd;
- ds->driverName = info->driverName;
ds->deviceName = info->deviceName;
ds->CreateBuffer = info->CreateBuffer;
@@ -828,9 +831,35 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
ds->GetMSC = info->GetMSC;
}
+ if (info->version == 3 || info->numDrivers == 0) {
+ /* Driver too old: use the old-style driverName field */
+ ds->numDrivers = 1;
+ ds->driverNames = xalloc(sizeof(*ds->driverNames));
+ if (!ds->driverNames) {
+ xfree(ds);
+ return FALSE;
+ }
+ ds->driverNames[0] = info->driverName;
+ } else {
+ ds->numDrivers = info->numDrivers;
+ ds->driverNames = xalloc(info->numDrivers * sizeof(*ds->driverNames));
+ if (!ds->driverNames) {
+ xfree(ds);
+ return FALSE;
+ }
+ memcpy(ds->driverNames, info->driverNames,
+ info->numDrivers * sizeof(*ds->driverNames));
+ }
+
dixSetPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey, ds);
xf86DrvMsg(pScreen->myNum, X_INFO, "[DRI2] Setup complete\n");
+ for (i = 0; i < sizeof(driverTypeNames) / sizeof(driverTypeNames[0]); i++) {
+ if (i < ds->numDrivers && ds->driverNames[i]) {
+ xf86DrvMsg(pScreen->myNum, X_INFO, "[DRI2] %s driver: %s\n",
+ driverTypeNames[i], ds->driverNames[i]);
+ }
+ }
return TRUE;
}
@@ -840,6 +869,7 @@ DRI2CloseScreen(ScreenPtr pScreen)
{
DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
+ xfree(ds->driverNames);
xfree(ds);
dixSetPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey, NULL);
}
diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h
index dd59297..1c8626b 100644
--- a/hw/xfree86/dri2/dri2.h
+++ b/hw/xfree86/dri2/dri2.h
@@ -164,9 +164,18 @@ typedef struct {
DRI2DestroyBufferProcPtr DestroyBuffer;
DRI2CopyRegionProcPtr CopyRegion;
DRI2WaitProcPtr Wait;
+
+ /* added in version 4 */
+
DRI2ScheduleSwapProcPtr ScheduleSwap;
DRI2GetMSCProcPtr GetMSC;
DRI2ScheduleWaitMSCProcPtr ScheduleWaitMSC;
+
+ /* number of drivers in the driverNames array */
+ unsigned int numDrivers;
+ /* array of driver names, indexed by DRI2Driver* driver types */
+ /* a name of NULL means that driver is not supported */
+ const char * const *driverNames;
} DRI2InfoRec, *DRI2InfoPtr;
extern _X_EXPORT int DRI2EventBase;
commit f57bc0ede8e018c7e264b917927c42a018cd1d5a
Author: Christian Zander <chzander at nvidia.com>
Date: Mon Jan 11 12:29:07 2010 -0800
x86emu: Respect the LEA 67h address size prefix.
Signed-off-by: Christian Zander <chzander at nvidia.com>
Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
Tested-by: Tiago Vignatti <tiago.vignatti at nokia.com>
Signed-off-by: Keith Packard <keithp at keithp.com>
diff --git a/hw/xfree86/x86emu/ops.c b/hw/xfree86/x86emu/ops.c
index 37ae2c9..21a0347 100644
--- a/hw/xfree86/x86emu/ops.c
+++ b/hw/xfree86/x86emu/ops.c
@@ -6567,42 +6567,62 @@ Handles opcode 0x8d
static void x86emuOp_lea_word_R_M(u8 X86EMU_UNUSED(op1))
{
int mod, rl, rh;
- u16 *srcreg;
uint destoffset;
-/*
- * TODO: Need to handle address size prefix!
- *
- * lea eax,[eax+ebx*2] ??
- */
-
START_OF_INSTR();
DECODE_PRINTF("LEA\t");
FETCH_DECODE_MODRM(mod, rh, rl);
switch (mod) {
case 0:
- srcreg = DECODE_RM_WORD_REGISTER(rh);
- DECODE_PRINTF(",");
- destoffset = decode_rm00_address(rl);
- DECODE_PRINTF("\n");
- TRACE_AND_STEP();
- *srcreg = (u16)destoffset;
+ if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
+ u32 *srcreg = DECODE_RM_LONG_REGISTER(rh);
+ DECODE_PRINTF(",");
+ destoffset = decode_rm00_address(rl);
+ DECODE_PRINTF("\n");
+ TRACE_AND_STEP();
+ *srcreg = (u32)destoffset;
+ } else {
+ u16 *srcreg = DECODE_RM_WORD_REGISTER(rh);
+ DECODE_PRINTF(",");
+ destoffset = decode_rm00_address(rl);
+ DECODE_PRINTF("\n");
+ TRACE_AND_STEP();
+ *srcreg = (u16)destoffset;
+ }
break;
case 1:
- srcreg = DECODE_RM_WORD_REGISTER(rh);
- DECODE_PRINTF(",");
- destoffset = decode_rm01_address(rl);
- DECODE_PRINTF("\n");
- TRACE_AND_STEP();
- *srcreg = (u16)destoffset;
+ if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
+ u32 *srcreg = DECODE_RM_LONG_REGISTER(rh);
+ DECODE_PRINTF(",");
+ destoffset = decode_rm01_address(rl);
+ DECODE_PRINTF("\n");
+ TRACE_AND_STEP();
+ *srcreg = (u32)destoffset;
+ } else {
+ u16 *srcreg = DECODE_RM_WORD_REGISTER(rh);
+ DECODE_PRINTF(",");
+ destoffset = decode_rm01_address(rl);
+ DECODE_PRINTF("\n");
+ TRACE_AND_STEP();
+ *srcreg = (u16)destoffset;
+ }
break;
case 2:
- srcreg = DECODE_RM_WORD_REGISTER(rh);
- DECODE_PRINTF(",");
- destoffset = decode_rm10_address(rl);
- DECODE_PRINTF("\n");
- TRACE_AND_STEP();
- *srcreg = (u16)destoffset;
+ if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
+ u32 *srcreg = DECODE_RM_LONG_REGISTER(rh);
+ DECODE_PRINTF(",");
+ destoffset = decode_rm10_address(rl);
+ DECODE_PRINTF("\n");
+ TRACE_AND_STEP();
+ *srcreg = (u32)destoffset;
+ } else {
+ u16 *srcreg = DECODE_RM_WORD_REGISTER(rh);
+ DECODE_PRINTF(",");
+ destoffset = decode_rm10_address(rl);
+ DECODE_PRINTF("\n");
+ TRACE_AND_STEP();
+ *srcreg = (u16)destoffset;
+ }
break;
case 3: /* register to register */
/* undefined. Do nothing. */
commit 2984c18eb994696927a7f3b94d86fd47907334a0
Author: Gaetan Nadon <memsize at videotron.ca>
Date: Thu Jan 21 14:21:07 2010 -0500
config: replace custom code with reusable macro XORG_WITH_DOXYGEN
XORG_WITH_DOXYGEN provides additional functions like a configure
option which allow platform builders to control the usage of
the doxygen program.
This is a requirement from platforms that do not have such doc tool.
A platform with a back level doxygen may use --without-doxygen
to get the rest of the documentation built.
Signed-off-by: Gaetan Nadon <memsize at videotron.ca>
Signed-off-by: Keith Packard <keithp at keithp.com>
diff --git a/configure.ac b/configure.ac
index 8c1085b..1f5c343 100644
--- a/configure.ac
+++ b/configure.ac
@@ -34,9 +34,10 @@ AM_MAINTAINER_MODE
# Require xorg-macros: XORG_DEFAULT_OPTIONS
m4_ifndef([XORG_MACROS_VERSION],
- [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
-XORG_MACROS_VERSION(1.3)
+ [m4_fatal([must install xorg-macros 1.5 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.5)
XORG_DEFAULT_OPTIONS
+XORG_WITH_DOXYGEN
m4_ifndef([XORG_FONT_MACROS_VERSION], [m4_fatal([must install fontutil 1.1 or later before running autoconf/autogen])])
XORG_FONT_MACROS_VERSION(1.1)
@@ -1943,8 +1944,6 @@ fi
AC_MSG_RESULT([$DMX])
AM_CONDITIONAL(DMX, [test "x$DMX" = xyes])
-DOXYGEN="not_found"
-
if test "x$DMX" = xyes; then
if test "x$have_dmx" = xno; then
AC_MSG_ERROR([Xdmx build explicitly requested, but required
@@ -1980,12 +1979,6 @@ dnl Linux sources in DMX require <linux/keyboard.h>
AC_SUBST(X11EXAMPLES_DEP_LIBS)
fi
-AC_PATH_PROG(DOXYGEN,doxygen,[not_found])
-if test "x$DOXYGEN" = "xnot_found" ; then
- AC_MSG_WARN([doxygen not found in $PATH. Cannot build dmx documentation])
-fi
-AC_SUBST(DOXYGEN)
-AM_CONDITIONAL([HAVE_DOXYGEN], [test "x$DOXYGEN" != "xnot_found"])
AM_CONDITIONAL([DMX_BUILD_LNX], [test "x$DMX_BUILD_LNX" = xyes])
AM_CONDITIONAL([DMX_BUILD_USB], [test "x$DMX_BUILD_USB" = xyes])
diff --git a/hw/dmx/doc/Makefile.am b/hw/dmx/doc/Makefile.am
index 0fb6e89..c6fc1c9 100644
--- a/hw/dmx/doc/Makefile.am
+++ b/hw/dmx/doc/Makefile.am
@@ -62,7 +62,7 @@ dist-local: html/annotated.html
html/annotated.html: $(DOXYGEN_SRC)
$(DOXYGEN) $(srcdir)/doxygen.conf
-clean-local:
+maintainer-clean-local:
rm -rf html/
endif
More information about the xorg-commit
mailing list