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

View File

@ -33,6 +33,9 @@ extern Window EphyrPreExistingHostWin;
extern Bool EphyrWantGrayScale; extern Bool EphyrWantGrayScale;
extern Bool kdHasPointer; extern Bool kdHasPointer;
extern Bool kdHasKbd; extern Bool kdHasKbd;
extern Bool ephyrNoDRI;
extern Bool ephyrNoXV;
extern Bool noGlxVisualInit;
void processScreenArg (char *screen_size, char *parent_id) ; void processScreenArg (char *screen_size, char *parent_id) ;
@ -99,6 +102,8 @@ ddxUseMsg (void)
ErrorF("-grayscale Simulate 8bit grayscale\n"); ErrorF("-grayscale Simulate 8bit grayscale\n");
ErrorF("-fakexa Simulate acceleration using software rendering\n"); ErrorF("-fakexa Simulate acceleration using software rendering\n");
ErrorF("-verbosity <level> Set log verbosity level\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"); ErrorF("\n");
exit(1); exit(1);
@ -139,6 +144,8 @@ ddxProcessArgument (int argc, char **argv, int i)
{ {
EPHYR_DBG("mark argv[%d]='%s'", i, argv[i] ); EPHYR_DBG("mark argv[%d]='%s'", i, argv[i] );
noGlxVisualInit = TRUE ;
if (!strcmp (argv[i], "-parent")) if (!strcmp (argv[i], "-parent"))
{ {
if(i+1 < argc) if(i+1 < argc)
@ -199,6 +206,19 @@ ddxProcessArgument (int argc, char **argv, int i)
exit(1) ; 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] == ':') else if (argv[i][0] == ':')
{ {
hostx_set_display_name(argv[i]); hostx_set_display_name(argv[i]);