On 11/12/2014 05:48 AM, Erik Faye-Lund wrote:
On Sun, Nov 2, 2014 at 7:32 PM, David Heidelberg <da...@ixit.cz> wrote:
v2: rename and extend support with code for C11 and MSVC (thanks to Brian)

Signed-off-by: David Heidelberg <da...@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


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to