[Xcb] [PATCH libxcb] config: default option for enable-dri3 is not implemented

Josh Triplett josh at joshtriplett.org
Mon Mar 24 06:55:34 PDT 2014


On Mon, Mar 24, 2014 at 09:34:07AM -0400, Gaetan Nadon wrote:
> The first symptom is the help text:
> 
>   --enable-dri3     Build XCB DRI3 Extension (default: "$sendfds")
> 
> The implementation variable $sendfds leaked into the user interface.
> Testing the various user inputs:
>   <nothing>                DRI3 is enabled     PASS
>   --enable-dri3		   DRI3 is enabled     PASS
>   --enable-dri3=yes        DRI3 is enabled     PASS
>   --enable-dri3=no         DRI3 is disabled    PASS
>   --disable-dri3           DRI3 is disabled    PASS
>   --enable-dri3=$sendfds   DRI3 is disabled    FAIL
> 
> This patch implements the usual idiom for features that are enabled by
> default if the various conditions are met (sendfds is available).
> New help text:
> 
>   --enable-dri3     Build XCB DRI3 Extension (default: auto)
> 
> With the additional user input:
> 
>   --enable-dri3=auto
> 
> which is equivalent to providing no input at all.
> 
> Note that this patch does not change the following behaviours:
> 
>   Except for DRI3, any user input other than yes or no is undefined
>   For DRI3, if user input is yes but sendfds says no, DRI3 is disabled
>   and the user is not informed.
> 
> Signed-off-by: Gaetan Nadon <memsize at videotron.ca>

Reviewed-by: Josh Triplett <josh at joshtriplett.org>

Could you also provide a patch fixing the bug you mention in your commit
message, that an --enable-dri3 gets silently ignored if !sendfds?

>  configure.ac |   52 ++++++++++++++++++++++++++--------------------------
>  m4/xcb.m4    |   18 +++++++++++++++---
>  2 files changed, 41 insertions(+), 29 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 68c3b2f..61941d7 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -212,32 +212,32 @@ case $host_os in
>          ;;
>  esac
>  
> -XCB_EXTENSION(Composite, "yes")
> -XCB_EXTENSION(Damage, "yes")
> -XCB_EXTENSION(DPMS, "yes")
> -XCB_EXTENSION(DRI2, "yes")
> -XCB_EXTENSION(DRI3, "$sendfds")
> -XCB_EXTENSION(GLX, "yes")
> -XCB_EXTENSION(Present, "yes")
> -XCB_EXTENSION(RandR, "yes")
> -XCB_EXTENSION(Record, "yes")
> -XCB_EXTENSION(Render, "yes")
> -XCB_EXTENSION(Resource, "yes")
> -XCB_EXTENSION(Screensaver, "yes")
> -XCB_EXTENSION(Shape, "yes")
> -XCB_EXTENSION(Shm, "yes")
> -XCB_EXTENSION(Sync, "yes")
> -XCB_EXTENSION(Xevie, "yes")
> -XCB_EXTENSION(XFixes, "yes")
> -XCB_EXTENSION(XFree86-DRI, "yes")
> -XCB_EXTENSION(Xinerama, "yes")
> -XCB_EXTENSION(XInput, "no")
> -XCB_EXTENSION(XKB, "yes")
> -XCB_EXTENSION(Xprint, "yes")
> -XCB_EXTENSION(SELinux, "no")
> -XCB_EXTENSION(XTest, "yes")
> -XCB_EXTENSION(Xv, "yes")
> -XCB_EXTENSION(XvMC, "yes")
> +XCB_EXTENSION(Composite, yes)
> +XCB_EXTENSION(Damage, yes)
> +XCB_EXTENSION(DPMS, yes)
> +XCB_EXTENSION(DRI2, yes)
> +XCB_EXTENSION(DRI3, $sendfds)
> +XCB_EXTENSION(GLX, yes)
> +XCB_EXTENSION(Present, yes)
> +XCB_EXTENSION(RandR, yes)
> +XCB_EXTENSION(Record, yes)
> +XCB_EXTENSION(Render, yes)
> +XCB_EXTENSION(Resource, yes)
> +XCB_EXTENSION(Screensaver, yes)
> +XCB_EXTENSION(Shape, yes)
> +XCB_EXTENSION(Shm, yes)
> +XCB_EXTENSION(Sync, yes)
> +XCB_EXTENSION(Xevie, yes)
> +XCB_EXTENSION(XFixes, yes)
> +XCB_EXTENSION(XFree86-DRI, yes)
> +XCB_EXTENSION(Xinerama, yes)
> +XCB_EXTENSION(XInput, no)
> +XCB_EXTENSION(XKB, yes)
> +XCB_EXTENSION(Xprint, yes)
> +XCB_EXTENSION(SELinux, no)
> +XCB_EXTENSION(XTest, yes)
> +XCB_EXTENSION(Xv, yes)
> +XCB_EXTENSION(XvMC, yes)
>  
>  AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto])
>  if test "x$LAUNCHD" = xauto; then
> diff --git a/m4/xcb.m4 b/m4/xcb.m4
> index 32e852d..cf525c0 100644
> --- a/m4/xcb.m4
> +++ b/m4/xcb.m4
> @@ -38,15 +38,27 @@ dnl XCB_EXTENSION(name, default)
>  dnl set the X extension
>  dnl
>  AC_DEFUN([XCB_EXTENSION],
> -[
> +[dnl
>  pushdef([UP], translit([$1], [-a-z], [_A-Z]))dnl
>  pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl
> +dnl
> +m4_if([$2], [yes], [m4_define([xcb_defopt], [yes])],
> +      [$2], [no],  [m4_define([xcb_defopt], [no])],
> +      m4_define([xcb_defopt], [auto]))dnl
>  
>  AC_ARG_ENABLE(DOWN,
> -    [AS_HELP_STRING([--enable-[]DOWN], [Build XCB $1 Extension (default: $2)])],
> +    [AS_HELP_STRING([--enable-[]DOWN],
> +                    [Build XCB $1 Extension (default: ]xcb_defopt[)])],
>      [BUILD_[]UP=$enableval],
> -    [BUILD_[]UP=$2])
> +    [BUILD_[]UP=xcb_defopt])
> +dnl
> +m4_if(xcb_defopt, [auto], [
> +# This extension has a default value of "auto" and depends on the value of $2
> +if test "x$BUILD_[]UP" = "xauto" ; then
> +    BUILD_[]UP=$2
> +fi])
>  
> +m4_undefine([xcb_defopt])dnl
>  AM_CONDITIONAL(BUILD_[]UP, [test "x$BUILD_[]UP" = "xyes"])
>  ])
>  
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Xcb mailing list
> Xcb at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xcb


More information about the Xcb mailing list