gallium/util: limit STACK_LEN on Windows
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Tue, 16 Jun 2020 09:15:39 +0000 (11:15 +0200)
committerMarge Bot <eric+marge@anholt.net>
Sat, 20 Jun 2020 06:51:54 +0000 (06:51 +0000)
The Windows implementation of debug_backtrace_capture has a limiation
of max 62 frames in total. Subtract a start-frame of 1 and the wrapping
functions frame, and we land at 60.

So let's lower this number on Windows to avoid triggering an assert.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5497>

src/gallium/auxiliary/util/u_debug_refcnt.c

index e0d2385bec7c4a4dd3bf1617b795cb7753a7fa11..f849e59cb3e9e6069dfd609076d32fff4d3b7328 100644 (file)
@@ -44,6 +44,7 @@
 #include "util/u_string.h"
 #include "util/u_hash_table.h"
 #include "os/os_thread.h"
+#include "pipe/p_config.h"
 
 int debug_refcnt_state;
 
@@ -113,7 +114,11 @@ debug_serial_delete(void *p)
 }
 
 
+#if defined(PIPE_OS_WINDOWS)
+#define STACK_LEN 60
+#else
 #define STACK_LEN 64
+#endif
 
 /**
  * Log a reference count change to the log file (if enabled).