summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTapani Pälli <tapani.palli@intel.com>2013-12-01 11:53:55 +0200
committerChad Versace <chad.versace@linux.intel.com>2013-12-03 09:21:24 -0800
commita057b837ddd1c725a7504eedc53c6df05a012773 (patch)
treecd38ea0291c88629cacbeb34ba9c0e7058e9f222
parentad3937fd4efdd0a9a2b79ab6ae899a4ca1f3bb01 (diff)
egl: add HAVE_LIBDRM define, fix EGL X11 platform
Commit a594cec broke EGL X11 backend by adding dependency between X11 and DRM backends requiring HAVE_EGL_PLATFORM_DRM defined for X11. This patch fixes the issue by adding additional define for libdrm detection independent of which backend is being compiled. Tested by compiling Mesa with '--with-egl-platforms=x11' and running es2gears_x11 + glbenchmark2.7 successfully. v2: return true for dri2_auth if running without libdrm (Samuel) v3: check libdrm when building EGL drm platform + AM_CFLAGS fix (Emil) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=72062 Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Chad Versace <chad.versace@linux.intel.com> Cc: Samuel Thibault <samuel.thibault@ens-lyon.org> Cc: mesa-stable@lists.freedesktop.org
-rw-r--r--configure.ac5
-rw-r--r--src/egl/drivers/dri2/platform_x11.c9
2 files changed, 8 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac
index 8c52535e649..91a5817b784 100644
--- a/configure.ac
+++ b/configure.ac
@@ -761,6 +761,9 @@ AC_SUBST([MESA_LLVM])
# Check for libdrm
PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
[have_libdrm=yes], [have_libdrm=no])
+if test "x$have_libdrm" = xyes; then
+ DEFINES="$DEFINES -DHAVE_LIBDRM"
+fi
PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
have_libudev=yes, have_libudev=no)
@@ -1439,6 +1442,8 @@ for plat in $egl_platforms; do
drm)
test "x$enable_gbm" = "xno" &&
AC_MSG_ERROR([EGL platform drm needs gbm])
+ test "x$have_libdrm" != xyes &&
+ AC_MSG_ERROR([EGL platform drm requires libdrm >= $LIBDRM_REQUIRED])
;;
android|fbdev|gdi|null)
diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
index c56a4138a64..04cb62b41d3 100644
--- a/src/egl/drivers/dri2/platform_x11.c
+++ b/src/egl/drivers/dri2/platform_x11.c
@@ -33,7 +33,7 @@
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
-#ifdef HAVE_DRM_PLATFORM
+#ifdef HAVE_LIBDRM
#include <xf86drm.h>
#endif
#include <sys/types.h>
@@ -608,7 +608,7 @@ dri2_x11_authenticate(_EGLDisplay *disp, uint32_t id)
static EGLBoolean
dri2_authenticate(_EGLDisplay *disp)
{
-#ifdef HAVE_DRM_PLATFORM
+#ifdef HAVE_LIBDRM
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
drm_magic_t magic;
@@ -621,11 +621,8 @@ dri2_authenticate(_EGLDisplay *disp)
_eglLog(_EGL_WARNING, "DRI2: failed to authenticate");
return EGL_FALSE;
}
-
- return EGL_TRUE;
-#else
- return EGL_FALSE;
#endif
+ return EGL_TRUE;
}
static EGLBoolean