Debug: Control logging level using a compile time knob
`SWIFTSHADER_LOGGING_LEVEL` controls how much logging we perform.
It defaults to `INFO`, so logs at `DEBUG` level are not printed by default.
Bug: b/146051794
Change-Id: I2037d1c912b24ee8d2e6543074850b65bbbd988a
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/40975
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/System/Debug.cpp b/src/System/Debug.cpp
index f510200..f386156 100644
--- a/src/System/Debug.cpp
+++ b/src/System/Debug.cpp
@@ -38,6 +38,10 @@
# undef ERROR // b/127920555
#endif
+#ifndef SWIFTSHADER_LOGGING_LEVEL
+# define SWIFTSHADER_LOGGING_LEVEL INFO
+#endif
+
namespace {
bool IsUnderDebugger()
@@ -143,6 +147,11 @@
void logv(Level level, const char *format, va_list args)
{
+ if(static_cast<int>(level) < static_cast<int>(Level::SWIFTSHADER_LOGGING_LEVEL))
+ {
+ return;
+ }
+
#ifndef SWIFTSHADER_DISABLE_TRACE
char buffer[2048];
vsnprintf(buffer, sizeof(buffer), format, args);