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

Brian Paul brianp at vmware.com
Wed Nov 12 08:09:50 PST 2014


On 11/12/2014 05:48 AM, Erik Faye-Lund wrote:
> 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?

Maybe there should be a macro in p_compiler.h which defines the 
thread-specific storage qualifier so we don't need all the #ifdef stuff 
in the util code.

-Brian




More information about the mesa-dev mailing list