From f0f7c3b03a93f1e2f6c15262585af774013c6031 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 1 May 2019 15:49:44 -0600 Subject: [PATCH] svga: add SVGA_NO_LOGGING env var (v2) valgrind crashes when we try to initialize host logging. This env var can be used to disable logging. v2: rebase onto "svga: move host logging to winsys". Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Neha Bhende --- docs/envvars.html | 3 +++ src/gallium/drivers/svga/svga_screen.c | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/envvars.html b/docs/envvars.html index c9733e65234..43d3a6cf169 100644 --- a/docs/envvars.html +++ b/docs/envvars.html @@ -338,6 +338,9 @@ See src/mesa/state_tracker/st_debug.c for other options. for details.
  • SVGA_EXTRA_LOGGING - if set, enables extra logging to the vmware.log file, such as the OpenGL program's name and command line arguments. +
  • SVGA_NO_LOGGING - if set, disables logging to the vmware.log file. +This is useful when using Valgrind because it otherwise crashes when +initializing the host log feature.
  • See the driver code for other, lesser-used variables. diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c index 664b9bf615d..f747ff78bcf 100644 --- a/src/gallium/drivers/svga/svga_screen.c +++ b/src/gallium/drivers/svga/svga_screen.c @@ -917,6 +917,16 @@ init_logging(struct pipe_screen *screen) } +/** + * no-op logging function to use when SVGA_NO_LOGGING is set. + */ +static void +nop_host_log(struct svga_winsys_screen *sws, const char *message) +{ + /* nothing */ +} + + static void svga_destroy_screen( struct pipe_screen *screen ) { @@ -1134,7 +1144,11 @@ svga_screen_create(struct svga_winsys_screen *sws) svga_screen_cache_init(svgascreen); - init_logging(screen); + if (debug_get_bool_option("SVGA_NO_LOGGING", FALSE) == TRUE) { + svgascreen->sws->host_log = nop_host_log; + } else { + init_logging(screen); + } return screen; error2: -- 2.30.2