diff options
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | src/glx/glxcmds.c | 2 | ||||
-rw-r--r-- | src/glx/glxext.c | 17 |
3 files changed, 14 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac index 7b0009d63e7..bb12a2a9414 100644 --- a/configure.ac +++ b/configure.ac @@ -945,6 +945,7 @@ xyesno) if test x"$driglx_direct" = xyes; then if test x"$dri_platform" = xdrm ; then + DEFINES="$DEFINES -DGLX_USE_DRM" if test "x$have_libdrm" != xyes; then AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED]) fi diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index c8de7927613..04d8db16096 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -2581,7 +2581,7 @@ static const struct name_address_pair GLX_functions[] = { GLX_FUNCTION2(glXReleaseTexImageEXT, __glXReleaseTexImageEXT), #endif -#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#if defined(GLX_DIRECT_RENDERING) && defined(GLX_USE_DRM) /*** DRI configuration ***/ GLX_FUNCTION(glXGetScreenDriver), GLX_FUNCTION(glXGetDriverConfig), diff --git a/src/glx/glxext.c b/src/glx/glxext.c index 8528e88f24b..94582f6b2e8 100644 --- a/src/glx/glxext.c +++ b/src/glx/glxext.c @@ -242,6 +242,7 @@ glx_display_free(struct glx_display *priv) (*priv->driswDisplay->destroyDisplay) (priv->driswDisplay); priv->driswDisplay = NULL; +#if defined (GLX_USE_DRM) if (priv->driDisplay) (*priv->driDisplay->destroyDisplay) (priv->driDisplay); priv->driDisplay = NULL; @@ -253,7 +254,8 @@ glx_display_free(struct glx_display *priv) if (priv->dri3Display) (*priv->dri3Display->destroyDisplay) (priv->dri3Display); priv->dri3Display = NULL; -#endif +#endif /* GLX_USE_DRM */ +#endif /* GLX_DIRECT_RENDERING && !GLX_USE_APPLEGL */ free((char *) priv); } @@ -779,17 +781,20 @@ AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv) for (i = 0; i < screens; i++, psc++) { psc = NULL; #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) +#if defined(GLX_USE_DRM) #if defined(HAVE_DRI3) if (priv->dri3Display) psc = (*priv->dri3Display->createScreen) (i, priv); -#endif +#endif /* HAVE_DRI3 */ if (psc == NULL && priv->dri2Display) psc = (*priv->dri2Display->createScreen) (i, priv); if (psc == NULL && priv->driDisplay) psc = (*priv->driDisplay->createScreen) (i, priv); +#endif /* GLX_USE_DRM */ if (psc == NULL && priv->driswDisplay) psc = (*priv->driswDisplay->createScreen) (i, priv); -#endif +#endif /* GLX_DIRECT_RENDERING && !GLX_USE_APPLEGL */ + #if defined(GLX_USE_APPLEGL) if (psc == NULL) psc = applegl_create_screen(i, priv); @@ -873,17 +878,19 @@ __glXInitialize(Display * dpy) ** Note: This _must_ be done before calling any other DRI routines ** (e.g., those called in AllocAndFetchScreenConfigs). */ +#if defined(GLX_USE_DRM) if (glx_direct && glx_accel) { #if defined(HAVE_DRI3) if (!getenv("LIBGL_DRI3_DISABLE")) dpyPriv->dri3Display = dri3_create_display(dpy); -#endif +#endif /* HAVE_DRI3 */ dpyPriv->dri2Display = dri2CreateDisplay(dpy); dpyPriv->driDisplay = driCreateDisplay(dpy); } +#endif /* GLX_USE_DRM */ if (glx_direct) dpyPriv->driswDisplay = driswCreateDisplay(dpy); -#endif +#endif /* GLX_DIRECT_RENDERING && !GLX_USE_APPLEGL */ #ifdef GLX_USE_APPLEGL if (!applegl_create_display(dpyPriv)) { |