mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-19 23:00:45 +01:00
glx: conditionaly build dri3 and present loader (v3)
This patch makes it possible to disable DRI3 if desired. Tested with: ./configure --disable-dri3 --with-dri-drivers=i965 \ --with-gallium-drivers= --disable-vdpau --disable-egl \ --disable-gbm --disable-xvmc Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71397 Cc: 10.0 <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
68349e5219
commit
f0f202e6b7
3 changed files with 44 additions and 12 deletions
44
configure.ac
44
configure.ac
|
|
@ -536,6 +536,11 @@ AC_ARG_ENABLE([dri],
|
||||||
[enable DRI modules @<:@default=enabled@:>@])],
|
[enable DRI modules @<:@default=enabled@:>@])],
|
||||||
[enable_dri="$enableval"],
|
[enable_dri="$enableval"],
|
||||||
[enable_dri=yes])
|
[enable_dri=yes])
|
||||||
|
AC_ARG_ENABLE([dri3],
|
||||||
|
[AS_HELP_STRING([--enable-dri3],
|
||||||
|
[enable DRI3 @<:@default=enabled@:>@])],
|
||||||
|
[enable_dri3="$enableval"],
|
||||||
|
[enable_dri3=yes])
|
||||||
AC_ARG_ENABLE([glx],
|
AC_ARG_ENABLE([glx],
|
||||||
[AS_HELP_STRING([--enable-glx],
|
[AS_HELP_STRING([--enable-glx],
|
||||||
[enable GLX library @<:@default=enabled@:>@])],
|
[enable GLX library @<:@default=enabled@:>@])],
|
||||||
|
|
@ -702,6 +707,7 @@ fi
|
||||||
AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
|
AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
|
||||||
"x$enable_dri" = xyes)
|
"x$enable_dri" = xyes)
|
||||||
AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes)
|
AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes)
|
||||||
|
AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes)
|
||||||
|
|
||||||
AC_ARG_ENABLE([shared-glapi],
|
AC_ARG_ENABLE([shared-glapi],
|
||||||
[AS_HELP_STRING([--enable-shared-glapi],
|
[AS_HELP_STRING([--enable-shared-glapi],
|
||||||
|
|
@ -756,6 +762,9 @@ AC_SUBST([MESA_LLVM])
|
||||||
PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
|
PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
|
||||||
[have_libdrm=yes], [have_libdrm=no])
|
[have_libdrm=yes], [have_libdrm=no])
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
|
||||||
|
have_libudev=yes, have_libudev=no)
|
||||||
|
|
||||||
if test "x$enable_dri" = xyes; then
|
if test "x$enable_dri" = xyes; then
|
||||||
# DRI must be shared, I think
|
# DRI must be shared, I think
|
||||||
if test "$enable_static" = yes; then
|
if test "$enable_static" = yes; then
|
||||||
|
|
@ -811,13 +820,21 @@ xyesno)
|
||||||
fi
|
fi
|
||||||
PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
|
PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
|
||||||
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
|
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
|
||||||
PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
|
if test x"$enable_dri3" = xyes; then
|
||||||
PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
|
if test x"$have_libudev" != xyes; then
|
||||||
PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED])
|
AC_MSG_ERROR([DRI3 requires libudev >= $LIBUDEV_REQUIRED])
|
||||||
|
fi
|
||||||
|
PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
|
||||||
|
PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# find the DRI deps for libGL
|
# find the DRI deps for libGL
|
||||||
dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8 xcb-dri3 xcb-present xcb-sync xshmfence"
|
dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8"
|
||||||
|
|
||||||
|
if test x"$enable_dri3" = xyes; then
|
||||||
|
dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence"
|
||||||
|
fi
|
||||||
|
|
||||||
# add xf86vidmode if available
|
# add xf86vidmode if available
|
||||||
PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
|
PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
|
||||||
|
|
@ -827,8 +844,13 @@ xyesno)
|
||||||
|
|
||||||
PKG_CHECK_MODULES([DRIGL], [$dri_modules])
|
PKG_CHECK_MODULES([DRIGL], [$dri_modules])
|
||||||
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
|
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
|
||||||
X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS $LIBUDEV_CFLAGS"
|
X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
|
||||||
GL_LIB_DEPS="$DRIGL_LIBS $LIBUDEV_LIBS"
|
GL_LIB_DEPS="$DRIGL_LIBS"
|
||||||
|
|
||||||
|
if test x"$enable_dri3$have_libudev" = xyesyes; then
|
||||||
|
X11_INCLUDES="$X11_INCLUDES $LIBUDEV_CFLAGS"
|
||||||
|
GL_LIB_DEPS="$GL_LIB_DEPS $LIBUDEV_LIBS"
|
||||||
|
fi
|
||||||
|
|
||||||
# need DRM libs, $PTHREAD_LIBS, etc.
|
# need DRM libs, $PTHREAD_LIBS, etc.
|
||||||
GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||||
|
|
@ -947,6 +969,9 @@ if test "x$enable_dri" = xyes; then
|
||||||
linux*)
|
linux*)
|
||||||
DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
|
DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
|
||||||
DEFINES="$DEFINES -DHAVE_ALIAS"
|
DEFINES="$DEFINES -DHAVE_ALIAS"
|
||||||
|
if test "x$enable_dri3" = xyes; then
|
||||||
|
DEFINES="$DEFINES -DHAVE_DRI3"
|
||||||
|
fi
|
||||||
|
|
||||||
case "$host_cpu" in
|
case "$host_cpu" in
|
||||||
x86_64|amd64)
|
x86_64|amd64)
|
||||||
|
|
@ -1142,8 +1167,9 @@ if test "x$enable_gbm" = xauto; then
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test "x$enable_gbm" = xyes; then
|
if test "x$enable_gbm" = xyes; then
|
||||||
PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
|
if test x"$have_libudev" != xyes; then
|
||||||
AC_MSG_ERROR([gbm needs udev]))
|
AC_MSG_ERROR([gbm needs udev])
|
||||||
|
fi
|
||||||
|
|
||||||
if test "x$enable_dri" = xyes; then
|
if test "x$enable_dri" = xyes; then
|
||||||
GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
|
GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
|
||||||
|
|
@ -1170,8 +1196,6 @@ if test "x$enable_egl" = xyes; then
|
||||||
|
|
||||||
if test "$enable_static" != yes; then
|
if test "$enable_static" != yes; then
|
||||||
# build egl_glx when libGL is built
|
# build egl_glx when libGL is built
|
||||||
PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
|
|
||||||
[have_libudev=yes],[have_libudev=no])
|
|
||||||
if test "$have_libudev" = yes; then
|
if test "$have_libudev" = yes; then
|
||||||
DEFINES="$DEFINES -DHAVE_LIBUDEV"
|
DEFINES="$DEFINES -DHAVE_LIBUDEV"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -94,10 +94,14 @@ libglx_la_SOURCES = \
|
||||||
dri2_glx.c \
|
dri2_glx.c \
|
||||||
dri2.c \
|
dri2.c \
|
||||||
dri2_query_renderer.c \
|
dri2_query_renderer.c \
|
||||||
dri3_glx.c \
|
|
||||||
dri3_common.c \
|
|
||||||
applegl_glx.c
|
applegl_glx.c
|
||||||
|
|
||||||
|
if HAVE_DRI3
|
||||||
|
libglx_la_SOURCES += \
|
||||||
|
dri3_glx.c \
|
||||||
|
dri3_common.c
|
||||||
|
endif
|
||||||
|
|
||||||
GL_LIBS = \
|
GL_LIBS = \
|
||||||
libglx.la \
|
libglx.la \
|
||||||
$(SHARED_GLAPI_LIBS) \
|
$(SHARED_GLAPI_LIBS) \
|
||||||
|
|
|
||||||
|
|
@ -770,8 +770,10 @@ AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv)
|
||||||
for (i = 0; i < screens; i++, psc++) {
|
for (i = 0; i < screens; i++, psc++) {
|
||||||
psc = NULL;
|
psc = NULL;
|
||||||
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
||||||
|
#if defined(HAVE_DRI3)
|
||||||
if (priv->dri3Display)
|
if (priv->dri3Display)
|
||||||
psc = (*priv->dri3Display->createScreen) (i, priv);
|
psc = (*priv->dri3Display->createScreen) (i, priv);
|
||||||
|
#endif
|
||||||
if (psc == NULL && priv->dri2Display)
|
if (psc == NULL && priv->dri2Display)
|
||||||
psc = (*priv->dri2Display->createScreen) (i, priv);
|
psc = (*priv->dri2Display->createScreen) (i, priv);
|
||||||
if (psc == NULL && priv->driDisplay)
|
if (psc == NULL && priv->driDisplay)
|
||||||
|
|
@ -865,8 +867,10 @@ __glXInitialize(Display * dpy)
|
||||||
** (e.g., those called in AllocAndFetchScreenConfigs).
|
** (e.g., those called in AllocAndFetchScreenConfigs).
|
||||||
*/
|
*/
|
||||||
if (glx_direct && glx_accel) {
|
if (glx_direct && glx_accel) {
|
||||||
|
#if defined(HAVE_DRI3)
|
||||||
if (!getenv("LIBGL_DRI3_DISABLE"))
|
if (!getenv("LIBGL_DRI3_DISABLE"))
|
||||||
dpyPriv->dri3Display = dri3_create_display(dpy);
|
dpyPriv->dri3Display = dri3_create_display(dpy);
|
||||||
|
#endif
|
||||||
dpyPriv->dri2Display = dri2CreateDisplay(dpy);
|
dpyPriv->dri2Display = dri2CreateDisplay(dpy);
|
||||||
dpyPriv->driDisplay = driCreateDisplay(dpy);
|
dpyPriv->driDisplay = driCreateDisplay(dpy);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue