anv: Make anv_finishme only warn once per call-site
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 9 Nov 2016 04:43:09 +0000 (20:43 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 9 Nov 2016 18:26:37 +0000 (10:26 -0800)
When you fire up Dota2 on Haswell you get spammed with thousands of
"Implement Gen7 HZ ops" finishme's.  The point of anv_finishme is to act as
a reminder that there is something left to implement.  Printing it once
should be sufficient.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/vulkan/anv_private.h

index 8f5a95bd445d0475718437ee40b168f648bdcbaa..c71a88463e58dd62df1e1cc99f1be1e8161f31df 100644 (file)
@@ -194,8 +194,13 @@ void anv_loge_v(const char *format, va_list va);
 /**
  * Print a FINISHME message, including its source location.
  */
-#define anv_finishme(format, ...) \
-   __anv_finishme(__FILE__, __LINE__, format, ##__VA_ARGS__);
+#define anv_finishme(format, ...) ({ \
+   static bool reported = false; \
+   if (!reported) { \
+      __anv_finishme(__FILE__, __LINE__, format, ##__VA_ARGS__); \
+      reported = true; \
+   } \
+})
 
 /* A non-fatal assert.  Useful for debugging. */
 #ifdef DEBUG