[Mesa-dev] [PATCH v3 6/9] gallium/auxiliary: add dump functions for bind and transfer flags

Erik Faye-Lund kusmabite at gmail.com
Wed Nov 12 04:48:34 PST 2014


On Sun, Nov 2, 2014 at 7:32 PM, David Heidelberg <david at ixit.cz> wrote:
> v2: rename and extend support with code for C11 and MSVC (thanks to Brian)
>
> Signed-off-by: David Heidelberg <david at ixit.cz>
> ---
>  src/gallium/auxiliary/util/u_dump.h         |  6 ++
>  src/gallium/auxiliary/util/u_dump_defines.c | 86
> +++++++++++++++++++++++++++++
>  2 files changed, 92 insertions(+)
>
> diff --git a/src/gallium/auxiliary/util/u_dump.h
> b/src/gallium/auxiliary/util/u_dump.h
> index 58e7dfd..84ba1ed 100644
> --- a/src/gallium/auxiliary/util/u_dump.h
> +++ b/src/gallium/auxiliary/util/u_dump.h
> @@ -88,6 +88,12 @@ util_dump_tex_filter(unsigned value, boolean shortened);
>  const char *
>  util_dump_query_type(unsigned value, boolean shortened);
>  +const char *
> +util_dump_bind_flags(unsigned flags);
> +
> +const char *
> +util_dump_transfer_flags(unsigned flags);
> +
>   /*
>   * p_state.h, through a FILE
> diff --git a/src/gallium/auxiliary/util/u_dump_defines.c
> b/src/gallium/auxiliary/util/u_dump_defines.c
> index 03fd15d..20ae6c0 100644
> --- a/src/gallium/auxiliary/util/u_dump_defines.c
> +++ b/src/gallium/auxiliary/util/u_dump_defines.c
> @@ -61,6 +61,36 @@ util_dump_enum_continuous(unsigned value,
>     return names[value];
>  }
>  +static const char *
> +util_dump_flags(unsigned flags, const char *prefix,
> +                unsigned num_names,
> +                const char **names)
> +{
> +#if __STDC_VERSION__ >= 201112 && !defined __STDC_NO_THREADS__
> +   static _Thread_local char str[256];
> +#elif defined(PIPE_CC_GCC)
> +   static __thread char str[256];
> +#elif defined(PIPE_CC_MSVC)
> +   static __declspec(thread) char str[256];
> +#else
> +#error "Unsupported compiler: please find how to implement thread local
> storage on it"
> +#endif

Isn't failing compilation a bit aggressive? Can't we just lose the
functionality instead?


More information about the mesa-dev mailing list