[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