r600g: Use the actual Evergreen functions to query format support on Evergreen.
[mesa.git] / src / gallium / auxiliary / util / u_debug.h
index ec3371a9b2565c181a9d564f2dbd33a6cfa39d32..b5ea4050633380868fd3c15a1cb87236905a84f7 100644 (file)
@@ -192,7 +192,7 @@ void _debug_assert_fail(const char *expr,
  */
 #ifdef DEBUG
 #define debug_checkpoint_full() \
-   _debug_printf("%s:%u:%s", __FILE__, __LINE__, __FUNCTION__) 
+   _debug_printf("%s:%u:%s\n", __FILE__, __LINE__, __FUNCTION__)
 #else
 #define debug_checkpoint_full() \
    ((void)0) 
@@ -230,6 +230,7 @@ struct debug_named_value
 {
    const char *name;
    unsigned long value;
+   const char *desc;
 };
 
 
@@ -252,8 +253,9 @@ struct debug_named_value
  *    ...
  * @endcode
  */
-#define DEBUG_NAMED_VALUE(__symbol) {#__symbol, (unsigned long)__symbol} 
-#define DEBUG_NAMED_VALUE_END {NULL, 0} 
+#define DEBUG_NAMED_VALUE(__symbol) DEBUG_NAMED_VALUE_WITH_DESCRIPTION(__symbol, NULL)
+#define DEBUG_NAMED_VALUE_WITH_DESCRIPTION(__symbol, __desc) {#__symbol, (unsigned long)__symbol, __desc}
+#define DEBUG_NAMED_VALUE_END {NULL, 0, NULL}
 
 
 /**
@@ -277,6 +279,43 @@ debug_dump_flags(const struct debug_named_value *names,
                  unsigned long value);
 
 
+/**
+ * Function enter exit loggers
+ */
+#ifdef DEBUG
+int debug_funclog_enter(const char* f, const int line, const char* file);
+void debug_funclog_exit(const char* f, const int line, const char* file);
+void debug_funclog_enter_exit(const char* f, const int line, const char* file);
+
+#define DEBUG_FUNCLOG_ENTER() \
+   int __debug_decleration_work_around = \
+      debug_funclog_enter(__FUNCTION__, __LINE__, __FILE__)
+#define DEBUG_FUNCLOG_EXIT() \
+   do { \
+      (void)__debug_decleration_work_around; \
+      debug_funclog_exit(__FUNCTION__, __LINE__, __FILE__); \
+      return; \
+   } while(0)
+#define DEBUG_FUNCLOG_EXIT_RET(ret) \
+   do { \
+      (void)__debug_decleration_work_around; \
+      debug_funclog_exit(__FUNCTION__, __LINE__, __FILE__); \
+      return ret; \
+   } while(0)
+#define DEBUG_FUNCLOG_ENTER_EXIT() \
+   debug_funclog_enter_exit(__FUNCTION__, __LINE__, __FILE__)
+
+#else
+#define DEBUG_FUNCLOG_ENTER() \
+   int __debug_decleration_work_around
+#define DEBUG_FUNCLOG_EXIT() \
+   do { (void)__debug_decleration_work_around; return; } while(0)
+#define DEBUG_FUNCLOG_EXIT_RET(ret) \
+   do { (void)__debug_decleration_work_around; return ret; } while(0)
+#define DEBUG_FUNCLOG_ENTER_EXIT()
+#endif
+
+
 /**
  * Get option.
  * 
@@ -309,8 +348,10 @@ debug_get_option_ ## sufix (void) \
 { \
    static boolean first = TRUE; \
    static boolean value; \
-   if (first && !(first = FALSE)) \
+   if (first) { \
+      first = FALSE; \
       value = debug_get_bool_option(name, dfault); \
+   } \
    return value; \
 }
 
@@ -320,8 +361,10 @@ debug_get_option_ ## sufix (void) \
 { \
    static boolean first = TRUE; \
    static long value; \
-   if (first && !(first = FALSE)) \
+   if (first) { \
+      first = FALSE; \
       value = debug_get_num_option(name, dfault); \
+   } \
    return value; \
 }
 
@@ -331,8 +374,10 @@ debug_get_option_ ## sufix (void) \
 { \
    static boolean first = TRUE; \
    static unsigned long value; \
-   if (first && !(first = FALSE)) \
+   if (first) { \
+      first = FALSE; \
       value = debug_get_flags_option(name, flags, dfault); \
+   } \
    return value; \
 }