Xephyr: add -nodri and -noxv switches.

* hw/kdrive/ephyr/ephyr.c,ephyrinit.c::
	  add -nodri and -noxv to disable either DRI or XV.
	  When -nodri, mesa GL (non acceleretated) works.
This commit is contained in:
Dodji Seketeli 2007-09-18 18:41:18 +02:00
parent 5067439138
commit f731b9da7d
2 changed files with 33 additions and 6 deletions

View File

@ -43,6 +43,8 @@ extern int KdTsPhyScreen;
KdKeyboardInfo *ephyrKbd;
KdPointerInfo *ephyrMouse;
EphyrKeySyms ephyrKeySyms;
Bool ephyrNoDRI=FALSE ;
Bool ephyrNoXV=FALSE ;
static int mouseState = 0;
@ -616,18 +618,23 @@ ephyrInitScreen (ScreenPtr pScreen)
pScreen->CreateColormap = ephyrCreateColormap;
#ifdef XV
if (!ephyrInitVideo (pScreen)) {
EPHYR_LOG_ERROR ("failed to initialize xvideo\n") ;
} else {
EPHYR_LOG ("initialized xvideo okay\n") ;
if (!ephyrNoXV) {
if (!ephyrInitVideo (pScreen)) {
EPHYR_LOG_ERROR ("failed to initialize xvideo\n") ;
} else {
EPHYR_LOG ("initialized xvideo okay\n") ;
}
}
#endif /*XV*/
#ifdef XEPHYR_DRI
if (!ephyrNoDRI) {
ephyrDRIExtensionInit (pScreen) ;
ephyrHijackGLXExtension () ;
ephyrProxyExtensionInit ("ATIFGLRXDRI") ;
}
#endif
return TRUE;
}
@ -639,12 +646,12 @@ ephyrFinishInitScreen (ScreenPtr pScreen)
*/
if (!shadowSetup (pScreen))
return FALSE;
#ifdef RANDR
if (!ephyrRandRInit (pScreen))
return FALSE;
#endif
return TRUE;
}

View File

@ -33,6 +33,9 @@ extern Window EphyrPreExistingHostWin;
extern Bool EphyrWantGrayScale;
extern Bool kdHasPointer;
extern Bool kdHasKbd;
extern Bool ephyrNoDRI;
extern Bool ephyrNoXV;
extern Bool noGlxVisualInit;
void processScreenArg (char *screen_size, char *parent_id) ;
@ -99,6 +102,8 @@ ddxUseMsg (void)
ErrorF("-grayscale Simulate 8bit grayscale\n");
ErrorF("-fakexa Simulate acceleration using software rendering\n");
ErrorF("-verbosity <level> Set log verbosity level\n");
ErrorF("-nodri do not use DRI\n");
ErrorF("-noxv do not use XV\n");
ErrorF("\n");
exit(1);
@ -139,6 +144,8 @@ ddxProcessArgument (int argc, char **argv, int i)
{
EPHYR_DBG("mark argv[%d]='%s'", i, argv[i] );
noGlxVisualInit = TRUE ;
if (!strcmp (argv[i], "-parent"))
{
if(i+1 < argc)
@ -199,6 +206,19 @@ ddxProcessArgument (int argc, char **argv, int i)
exit(1) ;
}
}
else if (!strcmp (argv[i], "-nodri"))
{
noGlxVisualInit = FALSE ;
ephyrNoDRI = TRUE ;
EPHYR_LOG ("no direct rendering enabled\n") ;
return 1 ;
}
else if (!strcmp (argv[i], "-noxv"))
{
ephyrNoXV = TRUE ;
EPHYR_LOG ("no XVideo enabled\n") ;
return 1 ;
}
else if (argv[i][0] == ':')
{
hostx_set_display_name(argv[i]);