[Mesa-dev] [Mesa-stable] [PATCH v3] egl: add HAVE_LIBDRM define, fix EGL X11 platform

Tapani tapani.palli at intel.com
Thu Dec 5 22:42:29 PST 2013


On 12/05/2013 07:22 PM, Ian Romanick wrote:
> On 12/01/2013 01:53 AM, Tapani Pälli wrote:
>> 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 at intel.com>
>> Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
>> Cc: Samuel Thibault <samuel.thibault at ens-lyon.org>
>> Cc: mesa-stable at lists.freedesktop.org
> This patch doesn't apply to 10.0 branch.  It looks like it's fixing a
> problem caused by another patch that isn't on the branch either.  Is
> this patch actually needed on 10.0?  If it is, can you provide a version
> that applies?

Oops sorry because the commit for patch that breaks things was rather 
old I assumed it is already in 10.0 but seems not. No need for applying 
this then, sorry for the noise.

> Thanks.
>
>> ---
>>   configure.ac                        | 5 +++++
>>   src/egl/drivers/dri2/platform_x11.c | 9 +++------
>>   2 files changed, 8 insertions(+), 6 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 8c52535..91a5817 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 c56a413..04cb62b 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
>>



More information about the mesa-dev mailing list