Fix for running multiple Xgl servers

This commit is contained in:
David Reveman 2006-04-18 22:12:19 +00:00
parent 65aaf84471
commit 9527e660fa
4 changed files with 25 additions and 5 deletions

View file

@ -1,3 +1,11 @@
2006-04-19 David Reveman <davidr@novell.com>
* hw/xgl/glx/xglx.c: Pass display offset to xglxInitXorg.
* hw/xgl/glx/xglx.h:
* hw/xgl/glx/xglxorg.c: Use offset for xorg display so that more than
one server can be started.
2006-04-18 David Reveman <davidr@novell.com>
* fb/fbmmx.c (fbCompositeSrc_yv12x8888mmx): Translate U, V start

View file

@ -136,6 +136,7 @@ static ScreenPtr currentScreen = 0;
static Bool softCursor = FALSE;
static Bool fullscreen = TRUE;
static Bool xDpms = FALSE;
static int displayOffset = 0;
static Bool randrExtension = FALSE;
static int randrEvent, randrError;
@ -1388,6 +1389,8 @@ xglxProcessArgument (int argc,
if (xDisplayName)
fullscreen = FALSE;
displayOffset = atoi (display + 1);
checkDisplayName = TRUE;
}
@ -1447,7 +1450,7 @@ xglxOsVendorInit (void)
char *name = xDisplayName;
if (!name)
name = xglxInitXorg ();
name = xglxInitXorg (displayOffset);
xdisplay = XOpenDisplay (name);
if (!xdisplay)

View file

@ -140,7 +140,7 @@ void
xglxAbortXorg (void);
char *
xglxInitXorg (void);
xglxInitXorg (int displayOffset);
#endif

View file

@ -55,8 +55,11 @@ static char *xorgAuth = NULL;
static char *xorgProgs[] = { "/usr/bin/Xorg", "/usr/X11R6/bin/Xorg" };
static char *xorgProg = NULL;
static char *xorgDisplay = ":93";
static char *xorgTerminate = "-terminate";
static char xorgDisplayBuf[256];
static char *xorgDisplay = NULL;
static int xorgDisplayOffset = 93;
static char *xorgTerminate = "-terminate";
static pid_t xorgPid = 0;
static int receivedUsr1 = 0;
@ -538,7 +541,7 @@ xglxSetupAuth (char *name, int authFd)
}
char *
xglxInitXorg (void)
xglxInitXorg (int displayOffset)
{
sighandler_t oldSigUsr1;
pid_t pid;
@ -591,6 +594,12 @@ xglxInitXorg (void)
if (!xglxAddXorgArguments (auth, sizeof (auth) / sizeof (char *)))
return 0;
if (!xorgDisplay)
{
xorgDisplay = xorgDisplayBuf;
sprintf (xorgDisplay, ":%d", xorgDisplayOffset + displayOffset);
}
if (!xglxAddXorgArguments (&xorgDisplay, 1))
return 0;