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 <bhenden@vmware.com>
(cherry picked from commit f0f7c3b03a)
This commit is contained in:
Brian Paul 2019-05-01 15:49:44 -06:00 committed by Dylan Baker
parent 646c77d718
commit cbce2f47fa
2 changed files with 18 additions and 1 deletions

View file

@ -338,6 +338,9 @@ See src/mesa/state_tracker/st_debug.c for other options.
for details.
<li>SVGA_EXTRA_LOGGING - if set, enables extra logging to the vmware.log file,
such as the OpenGL program's name and command line arguments.
<li>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.
<li>See the driver code for other, lesser-used variables.
</ul>

View file

@ -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: