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

This commit is contained in:
Ian Romanick 2006-07-05 15:21:36 -07:00
commit e66e7b48e1
15 changed files with 85 additions and 39 deletions

1
.gitignore vendored
View File

@ -145,6 +145,7 @@ hw/xfree86/doc/man/Xorg.man
hw/xfree86/doc/man/xorg.conf.5x hw/xfree86/doc/man/xorg.conf.5x
hw/xfree86/doc/man/xorg.conf.man hw/xfree86/doc/man/xorg.conf.man
hw/xfree86/exa/exa.4 hw/xfree86/exa/exa.4
hw/xfree86/exa/exa.4x
hw/xfree86/exa/exa.man hw/xfree86/exa/exa.man
hw/xfree86/fbdevhw/fbdevhw.4x hw/xfree86/fbdevhw/fbdevhw.4x
hw/xfree86/fbdevhw/fbdevhw.man hw/xfree86/fbdevhw/fbdevhw.man

View File

@ -296,7 +296,7 @@ DEFAULT_VENDOR_NAME_SHORT="X.Org"
DEFAULT_VERSION_MAJOR=7 DEFAULT_VERSION_MAJOR=7
DEFAULT_VERSION_MINOR=1 DEFAULT_VERSION_MINOR=1
DEFAULT_VERSION_PATCH=99 DEFAULT_VERSION_PATCH=99
DEFAULT_VERSION_SNAP=1 DEFAULT_VERSION_SNAP=2
DEFAULT_RELEASE_DATE="21 December 2005" DEFAULT_RELEASE_DATE="21 December 2005"
DEFAULT_VENDOR_WEB="http://wiki.x.org" DEFAULT_VENDOR_WEB="http://wiki.x.org"

View File

@ -523,6 +523,9 @@ exaDriverInit (ScreenPtr pScreen,
ExaDriverPtr pScreenInfo) ExaDriverPtr pScreenInfo)
{ {
ExaScreenPrivPtr pExaScr; ExaScreenPrivPtr pExaScr;
#ifdef RENDER
PictureScreenPtr ps;
#endif
if (pScreenInfo->exa_major != EXA_VERSION_MAJOR || if (pScreenInfo->exa_major != EXA_VERSION_MAJOR ||
pScreenInfo->exa_minor > EXA_VERSION_MINOR) pScreenInfo->exa_minor > EXA_VERSION_MINOR)
@ -536,7 +539,7 @@ exaDriverInit (ScreenPtr pScreen,
} }
#ifdef RENDER #ifdef RENDER
PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); ps = GetPictureScreenIfSet(pScreen);
#endif #endif
if (exaGeneration != serverGeneration) if (exaGeneration != serverGeneration)
{ {

View File

@ -535,7 +535,8 @@ exaComposite(CARD8 op,
if (op == PictOpSrc) if (op == PictOpSrc)
{ {
if (pSrc->pDrawable->width == 1 && if (pSrc->pDrawable->width == 1 &&
pSrc->pDrawable->height == 1 && pSrc->repeat) pSrc->pDrawable->height == 1 && pSrc->repeat &&
pSrc->repeatType == RepeatNormal)
{ {
ret = exaTryDriverSolidFill(pSrc, pDst, xSrc, ySrc, xDst, yDst, ret = exaTryDriverSolidFill(pSrc, pDst, xSrc, ySrc, xDst, yDst,
width, height); width, height);
@ -575,6 +576,8 @@ exaComposite(CARD8 op,
pMask->repeat = 0; pMask->repeat = 0;
if (pExaScr->info->PrepareComposite && if (pExaScr->info->PrepareComposite &&
(!pSrc->repeat || pSrc->repeat == RepeatNormal) &&
(!pMask || !pMask->repeat || pMask->repeat == RepeatNormal) &&
!pSrc->alphaMap && (!pMask || !pMask->alphaMap) && !pDst->alphaMap) !pSrc->alphaMap && (!pMask || !pMask->alphaMap) && !pDst->alphaMap)
{ {
ret = exaTryDriverComposite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, ret = exaTryDriverComposite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask,

View File

@ -46,7 +46,7 @@
#include "micmap.h" #include "micmap.h"
static int dmxInitColormapPrivateFunc(ColormapPtr pColormap) static int dmxInitColormapPrivateFunc(ColormapPtr pColormap, int index)
{ {
return TRUE; return TRUE;
} }

View File

@ -75,6 +75,7 @@ extern DeviceAssocRec mouse_assoc;
#endif #endif
#ifdef XKB #ifdef XKB
#undef XKB_IN_SERVER
#define XKB_IN_SERVER #define XKB_IN_SERVER
#include <X11/extensions/XKBsrv.h> #include <X11/extensions/XKBsrv.h>
#endif #endif
@ -617,6 +618,9 @@ static Bool
configFiles(XF86ConfFilesPtr fileconf) configFiles(XF86ConfFilesPtr fileconf)
{ {
MessageType pathFrom = X_DEFAULT; MessageType pathFrom = X_DEFAULT;
int countDirs;
char *temp_path;
char *log_buf;
/* FontPath */ /* FontPath */
@ -676,13 +680,13 @@ configFiles(XF86ConfFilesPtr fileconf)
FatalError("No valid FontPath could be found."); FatalError("No valid FontPath could be found.");
/* make fontpath more readable in the logfiles */ /* make fontpath more readable in the logfiles */
int countDirs = 1; countDirs = 1;
char *temp_path = defaultFontPath; temp_path = defaultFontPath;
while((temp_path = index(temp_path, ',')) != NULL) { while((temp_path = index(temp_path, ',')) != NULL) {
countDirs++; countDirs++;
temp_path++; temp_path++;
} }
char *log_buf = xnfalloc(strlen(defaultFontPath) + (2 * countDirs) + 1); log_buf = xnfalloc(strlen(defaultFontPath) + (2 * countDirs) + 1);
if(!log_buf) /* fallback to old method */ if(!log_buf) /* fallback to old method */
xf86Msg(pathFrom, "FontPath set to \"%s\"\n", defaultFontPath); xf86Msg(pathFrom, "FontPath set to \"%s\"\n", defaultFontPath);
else { else {

View File

@ -1,7 +1,7 @@
/* /*
* Abstraction of the AGP GART interface. * Abstraction of the AGP GART interface.
* *
* This version is for both Linux and FreeBSD. * This version is for Linux and Free/Open/NetBSD.
* *
* Copyright © 2000 VA Linux Systems, Inc. * Copyright © 2000 VA Linux Systems, Inc.
* Copyright © 2001 The XFree86 Project, Inc. * Copyright © 2001 The XFree86 Project, Inc.
@ -264,7 +264,11 @@ xf86DeallocateGARTMemory(int screenNum, int key)
return FALSE; return FALSE;
} }
#ifdef __linux__
if (ioctl(gartFd, AGPIOC_DEALLOCATE, (int *)key) != 0) { if (ioctl(gartFd, AGPIOC_DEALLOCATE, (int *)key) != 0) {
#else
if (ioctl(gartFd, AGPIOC_DEALLOCATE, &key) != 0) {
#endif
xf86DrvMsg(screenNum, X_WARNING,"xf86DeAllocateGARTMemory: " xf86DrvMsg(screenNum, X_WARNING,"xf86DeAllocateGARTMemory: "
"deallocation gart memory with key %d failed\n\t(%s)\n", "deallocation gart memory with key %d failed\n\t(%s)\n",
key, strerror(errno)); key, strerror(errno));

View File

@ -89,8 +89,8 @@ extern int mmapFd;
#include <stdlib.h> #include <stdlib.h>
#endif #endif
#define NEED_XF86_TYPES #define NEED_XF86_TYPES 1
#define NEED_XF86_PROTOTYPES #define NEED_XF86_PROTOTYPES 1
#define DONT_DEFINE_WRAPPERS #define DONT_DEFINE_WRAPPERS
#include "xf86_ansic.h" #include "xf86_ansic.h"

View File

@ -170,7 +170,7 @@ xf86writeConfigFile (const char *filename, XF86ConfigPtr cptr)
strerror(errno)); strerror(errno));
return 0; return 0;
case 0: /* child */ case 0: /* child */
if (setuid(getuid() == -1) if (setuid(getuid()) == -1)
FatalError("xf86writeConfigFile(): " FatalError("xf86writeConfigFile(): "
"setuid failed(%s)\n", "setuid failed(%s)\n",
strerror(errno)); strerror(errno));

View File

@ -219,6 +219,12 @@ XAADoComposite (
if (pDst->alphaMap || pSrc->alphaMap || (pMask && pMask->alphaMap)) if (pDst->alphaMap || pSrc->alphaMap || (pMask && pMask->alphaMap))
return FALSE; return FALSE;
if ((pSrc->repeat && pSrc->repeatType != RepeatNormal) ||
(pMask && pMask->repeat && pMask->repeatType != RepeatNormal))
{
return FALSE;
}
xDst += pDst->pDrawable->x; xDst += pDst->pDrawable->x;
yDst += pDst->pDrawable->y; yDst += pDst->pDrawable->y;
xSrc += pSrc->pDrawable->x; xSrc += pSrc->pDrawable->x;

View File

@ -818,20 +818,6 @@ XAAPolylinesWideSolid (
return; return;
} }
if (mode == CoordModePrevious) {
pPts->x += xorg;
pPts->y += yorg;
} else if(xorg | yorg) {
register int n = npt;
register DDXPointPtr pts = pPts;
while(n--) {
pts->x += xorg;
pts->y += yorg;
pts++;
}
}
x2 = pPts->x; x2 = pPts->x;
y2 = pPts->y; y2 = pPts->y;
if (npt > 1) { if (npt > 1) {
@ -869,6 +855,8 @@ XAAPolylinesWideSolid (
infoRec->ClipBox->x2 - 1, infoRec->ClipBox->y2 - 1); infoRec->ClipBox->x2 - 1, infoRec->ClipBox->y2 - 1);
} }
x2 += xorg;
y2 += yorg;
while (--npt) { while (--npt) {
x1 = x2; x1 = x2;
y1 = y2; y1 = y2;
@ -878,6 +866,9 @@ XAAPolylinesWideSolid (
if (mode == CoordModePrevious) { if (mode == CoordModePrevious) {
x2 += x1; x2 += x1;
y2 += y1; y2 += y1;
} else {
x2 += xorg;
y2 += yorg;
} }
if ((x1 != x2) || (y1 != y2)) { if ((x1 != x2) || (y1 != y2)) {
somethingDrawn = TRUE; somethingDrawn = TRUE;

View File

@ -29,6 +29,7 @@ typedef struct {
Bool xnestRealizeCursor(ScreenPtr pScreen, CursorPtr pCursor); Bool xnestRealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
Bool xnestUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor); Bool xnestUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor);
void xnestRecolorCursor(ScreenPtr pScreen, CursorPtr pCursor, Bool displayed);
void xnestSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y); void xnestSetCursor (ScreenPtr pScreen, CursorPtr pCursor, int x, int y);
void xnestMoveCursor (ScreenPtr pScreen, int x, int y); void xnestMoveCursor (ScreenPtr pScreen, int x, int y);

View File

@ -271,11 +271,24 @@ PictureResetFilters (ScreenPtr pScreen)
int int
SetPictureFilter (PicturePtr pPicture, char *name, int len, xFixed *params, int nparams) SetPictureFilter (PicturePtr pPicture, char *name, int len, xFixed *params, int nparams)
{ {
ScreenPtr pScreen = pPicture->pDrawable->pScreen; PictFilterPtr pFilter;
PictureScreenPtr ps = GetPictureScreen(pScreen);
PictFilterPtr pFilter = PictureFindFilter (pScreen, name, len);
xFixed *new_params; xFixed *new_params;
int i, result; int i, s, result;
pFilter = PictureFindFilter (screenInfo.screens[0], name, len);
if (pPicture->pDrawable == NULL) {
/* For source pictures, the picture isn't tied to a screen. So, ensure
* that all screens can handle a filter we set for the picture.
*/
for (s = 0; s < screenInfo.numScreens; s++) {
if (PictureFindFilter (screenInfo.screens[s], name, len)->id !=
pFilter->id)
{
return BadMatch;
}
}
}
if (!pFilter) if (!pFilter)
return BadName; return BadName;
@ -300,8 +313,13 @@ SetPictureFilter (PicturePtr pPicture, char *name, int len, xFixed *params, int
pPicture->filter_params[i] = params[i]; pPicture->filter_params[i] = params[i];
pPicture->filter = pFilter->id; pPicture->filter = pFilter->id;
if (pPicture->pDrawable) {
ScreenPtr pScreen = pPicture->pDrawable->pScreen;
PictureScreenPtr ps = GetPictureScreen(pScreen);
result = (*ps->ChangePictureFilter) (pPicture, pPicture->filter, result = (*ps->ChangePictureFilter) (pPicture, pPicture->filter,
params, nparams); params, nparams);
return result; return result;
}
return Success; return Success;
} }

View File

@ -1217,7 +1217,8 @@ ChangePicture (PicturePtr pPicture,
error = BadPixmap; error = BadPixmap;
break; break;
} }
if (pAlpha->pDrawable->type != DRAWABLE_PIXMAP) if (pAlpha->pDrawable == NULL ||
pAlpha->pDrawable->type != DRAWABLE_PIXMAP)
{ {
client->errorValue = pid; client->errorValue = pid;
error = BadMatch; error = BadMatch;
@ -1469,9 +1470,6 @@ SetPictureTransform (PicturePtr pPicture,
{ 0x00000, xFixed1, 0x00000 }, { 0x00000, xFixed1, 0x00000 },
{ 0x00000, 0x00000, xFixed1 }, { 0x00000, 0x00000, xFixed1 },
} }; } };
ScreenPtr pScreen = pPicture->pDrawable->pScreen;
PictureScreenPtr ps = GetPictureScreen(pScreen);
int result;
if (transform && memcmp (transform, &identity, sizeof (PictTransform)) == 0) if (transform && memcmp (transform, &identity, sizeof (PictTransform)) == 0)
transform = 0; transform = 0;
@ -1496,11 +1494,18 @@ SetPictureTransform (PicturePtr pPicture,
} }
pPicture->serialNumber |= GC_CHANGE_SERIAL_BIT; pPicture->serialNumber |= GC_CHANGE_SERIAL_BIT;
if (pPicture->pDrawable != NULL) {
int result;
PictureScreenPtr ps = GetPictureScreen(pPicture->pDrawable->pScreen);
result = (*ps->ChangePictureTransform) (pPicture, transform); result = (*ps->ChangePictureTransform) (pPicture, transform);
return result; return result;
} }
return Success;
}
void void
CopyPicture (PicturePtr pSrc, CopyPicture (PicturePtr pSrc,
Mask mask, Mask mask,

View File

@ -349,8 +349,18 @@ typedef struct _PictureScreen {
PictFilterAliasPtr filterAliases; PictFilterAliasPtr filterAliases;
int nfilterAliases; int nfilterAliases;
/**
* Called immediately after a picture's transform is changed through the
* SetPictureTransform request. Not called for source-only pictures.
*/
ChangePictureTransformProcPtr ChangePictureTransform; ChangePictureTransformProcPtr ChangePictureTransform;
/**
* Called immediately after a picture's transform is changed through the
* SetPictureFilter request. Not called for source-only pictures.
*/
ChangePictureFilterProcPtr ChangePictureFilter; ChangePictureFilterProcPtr ChangePictureFilter;
DestroyPictureFilterProcPtr DestroyPictureFilter; DestroyPictureFilterProcPtr DestroyPictureFilter;
TrapezoidsProcPtr Trapezoids; TrapezoidsProcPtr Trapezoids;