mapi: Respect MESA_DEBUG=silent for no-op debug output.

We set this in deqp-runner runs to disable Mesa debug/debugoptimized
builds printing to stderr for expected GL test behavior, and with the
addition of dEQP-EGL mapi got very verbose.  Move it to a call_once() too
to avoid data races.

Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10240>
This commit is contained in:
Eric Anholt 2021-04-14 11:28:54 -07:00 committed by Marge Bot
parent 8a8e55d6a8
commit c1352205ab
1 changed files with 17 additions and 5 deletions

View File

@ -25,9 +25,12 @@
* Chia-I Wu <olv@lunarg.com> * Chia-I Wu <olv@lunarg.com>
*/ */
#include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <string.h>
#include "c11/threads.h"
#include "table.h" #include "table.h"
static nop_handler_proc nop_handler = NULL; static nop_handler_proc nop_handler = NULL;
@ -38,6 +41,17 @@ table_set_noop_handler(nop_handler_proc func)
nop_handler = func; nop_handler = func;
} }
static bool log_noop;
static void check_debug_env(void)
{
const char *debug = getenv("MESA_DEBUG");
if (!debug)
debug = getenv("LIBGL_DEBUG");
if (debug && strcmp(debug, "silent") != 0)
log_noop = true;
}
static void static void
noop_warn(const char *name) noop_warn(const char *name)
{ {
@ -45,12 +59,10 @@ noop_warn(const char *name)
nop_handler(name); nop_handler(name);
} }
else { else {
static int debug = -1; static once_flag flag = ONCE_FLAG_INIT;
call_once(&flag, check_debug_env);
if (debug < 0)
debug = (getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG"));
if (debug) if (log_noop)
fprintf(stderr, "%s is no-op\n", name); fprintf(stderr, "%s is no-op\n", name);
} }
} }