From 2b5292bb4f1f5bcd0a00df25800a8f00f22069e0 Mon Sep 17 00:00:00 2001 From: jtsiomb Date: Tue, 21 Jan 2014 10:52:53 +0000 Subject: [PATCH] Applied Bruce Merry's patch fixing bug #206 (segfault on shutdown in the AMD/ATI fglrx driver). git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1640 7f0cb862-5218-0410-a997-914c9d46530a --- freeglut/freeglut/src/x11/fg_init_x11.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/freeglut/freeglut/src/x11/fg_init_x11.c b/freeglut/freeglut/src/x11/fg_init_x11.c index 49aefe6..52c5d88 100644 --- a/freeglut/freeglut/src/x11/fg_init_x11.c +++ b/freeglut/freeglut/src/x11/fg_init_x11.c @@ -182,6 +182,14 @@ void fgPlatformInitialize( const char* displayName ) if( !glXQueryExtension( fgDisplay.pDisplay.Display, NULL, NULL ) ) fgError( "OpenGL GLX extension not supported by display '%s'", XDisplayName( displayName ) ); + + /* This forces AMD Catalyst drivers to initialize and register a shutdown + * function, which must be done before our own call to atexit to prevent + * a crash if glutMainLoop is not called or is not exited cleanly. + * (see bug #206) + */ + glXQueryExtensionsString( fgDisplay.pDisplay.Display, + DefaultScreen( fgDisplay.pDisplay.Display )); #endif fgDisplay.pDisplay.Screen = DefaultScreen( fgDisplay.pDisplay.Display );