GLX: allow skipping of visual init wrapping

* GL/glx/glxvisuals.c: added boolean to disable
	  calling init_visuals(). This gives a chance to Xephyr
	  to take over visuals manipulation and avoid a crash at
	  server shutdown in __glXMesaScreenDestroy(), due to the fact
	  that mesa might sees more visual than what it has actually created in
	  init_visuals(). It might see more visuals because Xephyr can augment
	  the number of visuals, dynamically.
	* os/utils.c: the boolean is actually defined here.
This commit is contained in:
Dodji Seketeli 2007-09-18 18:22:44 +02:00
parent ffe9ce6a84
commit 6307ee7709
2 changed files with 6 additions and 3 deletions

View File

@ -55,6 +55,7 @@
void GlxWrapInitVisuals(miInitVisualsProcPtr *);
extern Bool noGlxVisualInit;
#include "glcontextmodes.h"
struct ScreenVisualsRec {
@ -452,14 +453,15 @@ Bool GlxInitVisuals(VisualPtr *visualp, DepthPtr *depthp,
/*
* Setup the visuals supported by this particular screen.
*/
init_visuals(nvisualp, visualp, defaultVisp,
*ndepthp, *depthp, *rootDepthp);
if (!noGlxVisualInit) {
init_visuals(nvisualp, visualp, defaultVisp,
*ndepthp, *depthp, *rootDepthp);
}
return True;
}
/************************************************************************/

View File

@ -160,6 +160,7 @@ _X_EXPORT Bool noFontCacheExtension = FALSE;
#endif
#ifdef GLXEXT
_X_EXPORT Bool noGlxExtension = FALSE;
_X_EXPORT Bool noGlxVisualInit = FALSE;
#endif
#ifdef SCREENSAVER
_X_EXPORT Bool noScreenSaverExtension = FALSE;