summaryrefslogtreecommitdiffstats
path: root/src/glx/x11
diff options
context:
space:
mode:
authorKristian Høgsberg <[email protected]>2008-03-10 17:59:46 -0400
committerKristian Høgsberg <[email protected]>2008-03-10 18:46:19 -0400
commit3731159ec6e1527655d91b3eb364d5c2d252ac60 (patch)
tree22fceea9f8e55b73a10243b79b9e38487261d05d /src/glx/x11
parent7c7fece97734284858a4605b8e2ca3e4eb0851ee (diff)
Only try to call DRI function if DRI got initialized properly.
Diffstat (limited to 'src/glx/x11')
-rw-r--r--src/glx/x11/glxcmds.c8
-rw-r--r--src/glx/x11/glxext.c3
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();