From f54b71b772a1f587394ae3968782b611e52f0e2d Mon Sep 17 00:00:00 2001 From: David Nusinow Date: Sun, 6 Aug 2006 18:11:00 +0000 Subject: [PATCH 1/6] Document enable/disable flag for AIGLX in xorg.conf manpage. --- hw/xfree86/doc/man/xorg.conf.man.pre | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre index 77d485665..3340af0b5 100644 --- a/hw/xfree86/doc/man/xorg.conf.man.pre +++ b/hw/xfree86/doc/man/xorg.conf.man.pre @@ -602,6 +602,9 @@ the keymap for a mapping to the .B Terminate action and, if found, use XKEYBOARD for processing actions, otherwise the builtin handler will be used. +.TP 7 +.BI "Option \*qAIGLX\*q \*q" boolean \*q +enable or disable AIGLX. AIGLX is enabled by default. .SH MODULE SECTION The .B Module From 12dbd8a02f797ad57a1be683a02a1fcb1ca35438 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Mon, 7 Aug 2006 23:43:40 +0300 Subject: [PATCH 2/6] remove optional R3 backwards compatibility Remove the permitOldBugs flag, which enabled backwards compatbility with broken R2/R3 era clients. --- Xext/mitmisc.c | 12 +++--------- dix/events.c | 21 +++++++++------------ dix/globals.c | 6 ------ dix/window.c | 6 +++--- hw/xfree86/loader/dixsym.c | 1 - include/opaque.h | 1 - os/utils.c | 2 -- 7 files changed, 15 insertions(+), 34 deletions(-) diff --git a/Xext/mitmisc.c b/Xext/mitmisc.c index a11c9a8ad..924b88063 100644 --- a/Xext/mitmisc.c +++ b/Xext/mitmisc.c @@ -42,8 +42,6 @@ in this Software without prior written authorization from The Open Group. #include #include "modinit.h" -extern Bool permitOldBugs; - #if 0 static unsigned char MITReqCode; #endif @@ -90,12 +88,8 @@ ProcMITSetBugMode(client) REQUEST(xMITSetBugModeReq); REQUEST_SIZE_MATCH(xMITSetBugModeReq); - if ((stuff->onOff != xTrue) && (stuff->onOff != xFalse)) - { - client->errorValue = stuff->onOff; - return BadValue; - } - permitOldBugs = stuff->onOff; + if (stuff->onOff != xFalse) + return BadRequest; return(client->noClientException); } @@ -110,7 +104,7 @@ ProcMITGetBugMode(client) rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; - rep.onOff = permitOldBugs; + rep.onOff = FALSE; if (client->swapped) { swaps(&rep.sequenceNumber, n); swapl(&rep.length, n); diff --git a/dix/events.c b/dix/events.c index f5101f629..20da048e1 100644 --- a/dix/events.c +++ b/dix/events.c @@ -3214,7 +3214,7 @@ EventSuppressForWindow(register WindowPtr pWin, register ClientPtr client, { register int i, free; - if ((mask & ~PropagateMask) && !permitOldBugs) + if (mask & ~PropagateMask) { client->errorValue = mask; return BadValue; @@ -3765,7 +3765,7 @@ ProcGrabPointer(ClientPtr client) client->errorValue = stuff->ownerEvents; return BadValue; } - if ((stuff->eventMask & ~PointerGrabMask) && !permitOldBugs) + if (stuff->eventMask & ~PointerGrabMask) { client->errorValue = stuff->eventMask; return BadValue; @@ -3851,7 +3851,7 @@ ProcChangeActivePointerGrab(ClientPtr client) TimeStamp time; REQUEST_SIZE_MATCH(xChangeActivePointerGrabReq); - if ((stuff->eventMask & ~PointerGrabMask) && !permitOldBugs) + if (stuff->eventMask & ~PointerGrabMask) { client->errorValue = stuff->eventMask; return BadValue; @@ -4152,13 +4152,12 @@ ProcSendEvent(ClientPtr client) if (stuff->event.u.u.type == ClientMessage && stuff->event.u.u.detail != 8 && stuff->event.u.u.detail != 16 && - stuff->event.u.u.detail != 32 && - !permitOldBugs) + stuff->event.u.u.detail != 32) { client->errorValue = stuff->event.u.u.detail; return BadValue; } - if ((stuff->eventMask & ~AllEventMasks) && !permitOldBugs) + if (stuff->eventMask & ~AllEventMasks) { client->errorValue = stuff->eventMask; return BadValue; @@ -4375,12 +4374,10 @@ ProcGrabButton(ClientPtr client) grab = CreateGrab(client->index, inputInfo.pointer, pWin, - permitOldBugs ? (Mask)(stuff->eventMask | - ButtonPressMask | ButtonReleaseMask) : - (Mask)stuff->eventMask, - (Bool)stuff->ownerEvents, (Bool) stuff->keyboardMode, - (Bool)stuff->pointerMode, inputInfo.keyboard, stuff->modifiers, - ButtonPress, stuff->button, confineTo, cursor); + (Mask)stuff->eventMask, (Bool)stuff->ownerEvents, + (Bool) stuff->keyboardMode, (Bool)stuff->pointerMode, + inputInfo.keyboard, stuff->modifiers, ButtonPress, + stuff->button, confineTo, cursor); if (!grab) return BadAlloc; return AddPassiveGrabToList(grab); diff --git a/dix/globals.c b/dix/globals.c index 19721062c..5b854aabc 100644 --- a/dix/globals.c +++ b/dix/globals.c @@ -148,12 +148,6 @@ ClientPtr requestingClient; /* XXX this should be obsolete now, remove? */ _X_EXPORT TimeStamp currentTime; _X_EXPORT TimeStamp lastDeviceEventTime; -/* - * turn off some error checking, to permit old broken clients (like R2/R3 - * xterms) to work - */ -_X_EXPORT Bool permitOldBugs = FALSE; - _X_EXPORT int defaultColorVisualClass = -1; _X_EXPORT int monitorResolution = 0; diff --git a/dix/window.c b/dix/window.c index 0bcbf4608..ebc6923fa 100644 --- a/dix/window.c +++ b/dix/window.c @@ -2093,7 +2093,7 @@ WhereDoIGoInTheStack( else return NullWindow; case TopIf: - if ((!pWin->mapped || (pSib && !pSib->mapped)) && !permitOldBugs) + if ((!pWin->mapped || (pSib && !pSib->mapped))) return(pWin->nextSib); else if (pSib) { @@ -2108,7 +2108,7 @@ WhereDoIGoInTheStack( else return(pWin->nextSib); case BottomIf: - if ((!pWin->mapped || (pSib && !pSib->mapped)) && !permitOldBugs) + if ((!pWin->mapped || (pSib && !pSib->mapped))) return(pWin->nextSib); else if (pSib) { @@ -2123,7 +2123,7 @@ WhereDoIGoInTheStack( else return(pWin->nextSib); case Opposite: - if ((!pWin->mapped || (pSib && !pSib->mapped)) && !permitOldBugs) + if ((!pWin->mapped || (pSib && !pSib->mapped))) return(pWin->nextSib); else if (pSib) { diff --git a/hw/xfree86/loader/dixsym.c b/hw/xfree86/loader/dixsym.c index 0e8bb89dd..22fe501f3 100644 --- a/hw/xfree86/loader/dixsym.c +++ b/hw/xfree86/loader/dixsym.c @@ -244,7 +244,6 @@ _X_HIDDEN void *dixLookupTab[] = { SYMVAR(globalSerialNumber) SYMVAR(lastDeviceEventTime) SYMVAR(monitorResolution) - SYMVAR(permitOldBugs) SYMVAR(screenInfo) SYMVAR(serverClient) SYMVAR(serverGeneration) diff --git a/include/opaque.h b/include/opaque.h index bb5bc5e53..4ccccd054 100644 --- a/include/opaque.h +++ b/include/opaque.h @@ -70,7 +70,6 @@ extern int limitStackSpace; #ifdef RLIMIT_NOFILE extern int limitNoFile; #endif -extern Bool permitOldBugs; extern Bool defeatAccessControl; extern long maxBigRequestSize; extern Bool blackRoot; diff --git a/os/utils.c b/os/utils.c index def12be49..7a4bd1175 100644 --- a/os/utils.c +++ b/os/utils.c @@ -768,8 +768,6 @@ ProcessCommandLine(int argc, char *argv[]) else UseMsg(); } - else if ( strcmp( argv[i], "bc") == 0) - permitOldBugs = TRUE; else if ( strcmp( argv[i], "-br") == 0) blackRoot = TRUE; else if ( strcmp( argv[i], "+bs") == 0) From 462bb61b0fe968fae1b99cf98ec6f7de09105dcd Mon Sep 17 00:00:00 2001 From: Aaron Plattner Date: Tue, 8 Aug 2006 18:07:22 -0700 Subject: [PATCH 3/6] Add CompositeRegisterAlternateVisuals. This provides drivers the ability to add their own alternate visuals and then register them with Composite for implicit redirection. --- composite/compinit.c | 46 ++++++++++++++++++++++++++++++++++++++---- composite/compint.h | 13 ++++++------ composite/compwindow.c | 2 +- 3 files changed, 49 insertions(+), 12 deletions(-) diff --git a/composite/compinit.c b/composite/compinit.c index 5a1361216..1d5cc7b04 100644 --- a/composite/compinit.c +++ b/composite/compinit.c @@ -60,6 +60,8 @@ compCloseScreen (int index, ScreenPtr pScreen) CompScreenPtr cs = GetCompScreen (pScreen); Bool ret; + xfree (cs->alternateVisuals); + pScreen->CloseScreen = cs->CloseScreen; pScreen->BlockHandler = cs->BlockHandler; pScreen->InstallColormap = cs->InstallColormap; @@ -100,7 +102,7 @@ compInstallColormap (ColormapPtr pColormap) CompScreenPtr cs = GetCompScreen (pScreen); int a; - for (a = 0; a < NUM_COMP_ALTERNATE_VISUALS; a++) + for (a = 0; a < cs->numAlternateVisuals; a++) if (pVisual->vid == cs->alternateVisuals[a]) return; pScreen->InstallColormap = cs->InstallColormap; @@ -170,6 +172,41 @@ compFindVisuallessDepth (ScreenPtr pScreen, int d) return 0; } +/* + * Add a list of visual IDs to the list of visuals to implicitly redirect. + */ +static Bool +compRegisterAlternateVisuals (CompScreenPtr cs, VisualID *vids, int nVisuals) +{ + VisualID *p; + + p = xrealloc(cs->alternateVisuals, + sizeof(VisualID) * (cs->numAlternateVisuals + nVisuals)); + if(p == NULL) + return FALSE; + + memcpy(&p[cs->numAlternateVisuals], vids, sizeof(VisualID) * nVisuals); + + cs->alternateVisuals = p; + cs->numAlternateVisuals += nVisuals; + + return TRUE; +} + +_X_EXPORT +Bool CompositeRegisterAlternateVisuals (ScreenPtr pScreen, VisualID *vids, + int nVisuals) +{ + CompScreenPtr cs = GetCompScreen (pScreen); + return compRegisterAlternateVisuals(cs, vids, nVisuals); +} + +#if COMP_INCLUDE_RGB24_VISUAL +#define NUM_COMP_ALTERNATE_VISUALS 2 +#else +#define NUM_COMP_ALTERNATE_VISUALS 1 +#endif + typedef struct _alternateVisual { int depth; CARD32 format; @@ -197,8 +234,6 @@ compAddAlternateVisuals (ScreenPtr pScreen, CompScreenPtr cs) int numAlternate = 0; int alt; - memset (cs->alternateVisuals, '\0', sizeof (cs->alternateVisuals)); - for (alt = 0; alt < NUM_COMP_ALTERNATE_VISUALS; alt++) { DepthPtr depth; @@ -321,7 +356,7 @@ compAddAlternateVisuals (ScreenPtr pScreen, CompScreenPtr cs) /* * remember the visual ID to detect auto-update windows */ - cs->alternateVisuals[alt] = visual->vid; + compRegisterAlternateVisuals(cs, &visual->vid, 1); /* * Fix up the depth @@ -367,6 +402,9 @@ compScreenInit (ScreenPtr pScreen) cs->pOverlayWin = NULL; cs->pOverlayClients = NULL; + cs->numAlternateVisuals = 0; + cs->alternateVisuals = NULL; + if (!compAddAlternateVisuals (pScreen, cs)) { xfree (cs); diff --git a/composite/compint.h b/composite/compint.h index 9395512b4..3958b3b31 100644 --- a/composite/compint.h +++ b/composite/compint.h @@ -109,12 +109,6 @@ typedef struct _CompSubwindows { #define COMP_INCLUDE_RGB24_VISUAL 0 #endif -#if COMP_INCLUDE_RGB24_VISUAL -#define NUM_COMP_ALTERNATE_VISUALS 2 -#else -#define NUM_COMP_ALTERNATE_VISUALS 1 -#endif - typedef struct _CompOverlayClientRec *CompOverlayClientPtr; typedef struct _CompOverlayClientRec { @@ -154,7 +148,8 @@ typedef struct _CompScreen { ScreenBlockHandlerProcPtr BlockHandler; CloseScreenProcPtr CloseScreen; Bool damaged; - XID alternateVisuals[NUM_COMP_ALTERNATE_VISUALS]; + int numAlternateVisuals; + VisualID *alternateVisuals; WindowPtr pOverlayWin; CompOverlayClientPtr pOverlayClients; @@ -224,6 +219,10 @@ CompositeExtensionInit (void); * compinit.c */ +Bool +CompositeRegisterAlternateVisuals (ScreenPtr pScreen, + VisualID *vids, int nVisuals); + Bool compScreenInit (ScreenPtr pScreen); diff --git a/composite/compwindow.c b/composite/compwindow.c index 87055b70c..2c86cdd95 100644 --- a/composite/compwindow.c +++ b/composite/compwindow.c @@ -301,7 +301,7 @@ compIsAlternateVisual (ScreenPtr pScreen, CompScreenPtr cs = GetCompScreen (pScreen); int i; - for (i = 0; i < NUM_COMP_ALTERNATE_VISUALS; i++) + for (i = 0; i < cs->numAlternateVisuals; i++) if (cs->alternateVisuals[i] == visual) return TRUE; return FALSE; From c4f5de6cc3b935025829af971b0b8010c1ecfedb Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Wed, 9 Aug 2006 20:21:52 +0200 Subject: [PATCH 4/6] Sanitized glxdri's Block/Wakeuphandler calling. __glXDRIleaveServer() and _enterServer() used to call DRIDoBlockHandler (resp DRIDoWakeupHandler) directly. They are now calling DRIBlockHandler (resp DRIWakeupHandler) to account for driver specific block/wakeup hooks. --- GL/glx/glxdri.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c index 6a1055439..cfa9996df 100644 --- a/GL/glx/glxdri.c +++ b/GL/glx/glxdri.c @@ -137,19 +137,13 @@ static const char CREATE_NEW_SCREEN_FUNC[] = static void __glXDRIleaveServer(void) { - int i; - - for (i = 0; i < screenInfo.numScreens; i++) - DRIDoBlockHandler(i, NULL, NULL, NULL); + DRIBlockHandler(NULL, NULL, NULL); } static void __glXDRIenterServer(void) { - int i; - - for (i = 0; i < screenInfo.numScreens; i++) - DRIDoWakeupHandler(i, NULL, 0, NULL); + DRIWakeupHandler(NULL, 0, NULL); } static void From fcd4167e8913f77bdf9e17a6955d0f2a9f4eeb10 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 9 Aug 2006 14:48:51 -0400 Subject: [PATCH 5/6] Remove the bc flag from the -help text, since it's gone. --- os/utils.c | 1 - 1 file changed, 1 deletion(-) diff --git a/os/utils.c b/os/utils.c index 7a4bd1175..b15700f85 100644 --- a/os/utils.c +++ b/os/utils.c @@ -580,7 +580,6 @@ void UseMsg(void) #endif ErrorF("-audit int set audit trail level\n"); ErrorF("-auth file select authorization file\n"); - ErrorF("bc enable bug compatibility\n"); ErrorF("-br create root window with black background\n"); ErrorF("+bs enable any backing store support\n"); ErrorF("-bs disable any backing store support\n"); From db82e12fac5eaa16a39fc1bd0bc31ad95089dc95 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 9 Aug 2006 14:55:17 -0400 Subject: [PATCH 6/6] Remove TargetRefresh option from the autoconfig logic. The default target of 75Hz is almost always wrong for LCDs. --- hw/xfree86/common/xf86AutoConfig.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c index 37cf52e34..4dcc997c1 100644 --- a/hw/xfree86/common/xf86AutoConfig.c +++ b/hw/xfree86/common/xf86AutoConfig.c @@ -71,7 +71,6 @@ #define BUILTIN_MONITOR_SECTION \ "Section \"Monitor\"\n" \ "\tIdentifier\t" BUILTIN_MONITOR_NAME "\n" \ - "\tOption\t\"TargetRefresh\"\t\"75.0\"\n" \ "EndSection\n\n" #define BUILTIN_SCREEN_NAME \