From 3731159ec6e1527655d91b3eb364d5c2d252ac60 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kristian=20H=C3=B8gsberg?= Date: Mon, 10 Mar 2008 17:59:46 -0400 Subject: [PATCH] Only try to call DRI function if DRI got initialized properly. --- src/glx/x11/glxcmds.c | 8 +++++--- src/glx/x11/glxext.c | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/glx/x11/glxcmds.c b/src/glx/x11/glxcmds.c index c761ddf29ff..1437ea54425 100644 --- a/src/glx/x11/glxcmds.c +++ b/src/glx/x11/glxcmds.c @@ -360,6 +360,10 @@ CreateContext(Display *dpy, XVisualInfo *vis, Bool use_glx_1_3, int renderType) { GLXContext gc; +#ifdef GLX_DIRECT_RENDERING + int screen = (fbconfig == NULL) ? vis->screen : fbconfig->screen; + __GLXscreenConfigs * const psc = GetGLXScreenConfigs(dpy, screen); +#endif if ( dpy == NULL ) return NULL; @@ -373,9 +377,7 @@ CreateContext(Display *dpy, XVisualInfo *vis, return NULL; #ifdef GLX_DIRECT_RENDERING - if (allowDirect) { - int screen = (fbconfig == NULL) ? vis->screen : fbconfig->screen; - __GLXscreenConfigs * const psc = GetGLXScreenConfigs(dpy, screen); + if (allowDirect && psc->driScreen) { const __GLcontextModes * mode; if (fbconfig == NULL) { diff --git a/src/glx/x11/glxext.c b/src/glx/x11/glxext.c index 47f8da04b29..bb3fc894033 100644 --- a/src/glx/x11/glxext.c +++ b/src/glx/x11/glxext.c @@ -771,7 +771,8 @@ static Bool AllocAndFetchScreenConfigs(Display *dpy, __GLXdisplayPrivate *priv) psc->scr = i; psc->dpy = dpy; #ifdef GLX_DIRECT_RENDERING - psc->driScreen = (*priv->driDisplay->createScreen)(psc, i, priv); + if (priv->driDisplay) + psc->driScreen = (*priv->driDisplay->createScreen)(psc, i, priv); #endif } SyncHandle(); -- 2.30.2