For the series: Reviewed-by: Marek Olšák <[email protected]>
Marek On Mon, Jan 25, 2016 at 6:00 PM, Nicolai Hähnle <[email protected]> wrote: > From: Nicolai Hähnle <[email protected]> > > This currently just writes out the name of dump files, which can be useful > to easily correlate those files with other log outputs (driver debug output, > apitrace calls, etc.) > --- > src/gallium/drivers/ddebug/dd_draw.c | 3 ++- > src/gallium/drivers/ddebug/dd_pipe.h | 1 + > src/gallium/drivers/ddebug/dd_screen.c | 6 ++++-- > src/gallium/drivers/ddebug/dd_util.h | 5 ++++- > src/gallium/drivers/radeonsi/si_debug.c | 2 +- > 5 files changed, 12 insertions(+), 5 deletions(-) > > diff --git a/src/gallium/drivers/ddebug/dd_draw.c > b/src/gallium/drivers/ddebug/dd_draw.c > index de484ab..45e4e10 100644 > --- a/src/gallium/drivers/ddebug/dd_draw.c > +++ b/src/gallium/drivers/ddebug/dd_draw.c > @@ -88,8 +88,9 @@ struct dd_call > static FILE * > dd_get_file_stream(struct dd_context *dctx) > { > + struct dd_screen *dscreen = dd_screen(dctx->base.screen); > struct pipe_screen *screen = dctx->pipe->screen; > - FILE *f = dd_get_debug_file(); > + FILE *f = dd_get_debug_file(dscreen->verbose); > if (!f) > return NULL; > > diff --git a/src/gallium/drivers/ddebug/dd_pipe.h > b/src/gallium/drivers/ddebug/dd_pipe.h > index a045518..80098dc 100644 > --- a/src/gallium/drivers/ddebug/dd_pipe.h > +++ b/src/gallium/drivers/ddebug/dd_pipe.h > @@ -45,6 +45,7 @@ struct dd_screen > unsigned timeout_ms; > enum dd_mode mode; > bool no_flush; > + bool verbose; > unsigned skip_count; > }; > > diff --git a/src/gallium/drivers/ddebug/dd_screen.c > b/src/gallium/drivers/ddebug/dd_screen.c > index ab87d25..3706b2d 100644 > --- a/src/gallium/drivers/ddebug/dd_screen.c > +++ b/src/gallium/drivers/ddebug/dd_screen.c > @@ -280,17 +280,18 @@ ddebug_screen_create(struct pipe_screen *screen) > puts(""); > puts("Usage:"); > puts(""); > - puts(" GALLIUM_DDEBUG=\"always [noflush]\""); > + puts(" GALLIUM_DDEBUG=\"always [noflush] [verbose]\""); > puts(" Flush and dump context and driver information after every > draw call into"); > puts(" $HOME/"DD_DIR"/."); > puts(""); > - puts(" GALLIUM_DDEBUG=\"[timeout in ms] [noflush]\""); > + puts(" GALLIUM_DDEBUG=\"[timeout in ms] [noflush] [verbose]\""); > puts(" Flush and detect a device hang after every draw call based > on the given"); > puts(" fence timeout and dump context and driver information into"); > puts(" $HOME/"DD_DIR"/ when a hang is detected."); > puts(""); > puts(" If 'noflush' is specified, do not flush on every draw call. In > hang"); > puts(" detection mode, this only detect hangs in pipe->flush."); > + puts(" If 'verbose' is specified, additional information is written > to stderr."); > puts(""); > puts(" GALLIUM_DDEBUG_SKIP=[count]"); > puts(" Skip flush and hang detection for the given initial number > of draw calls."); > @@ -341,6 +342,7 @@ ddebug_screen_create(struct pipe_screen *screen) > dscreen->timeout_ms = timeout; > dscreen->mode = dump_always ? DD_DUMP_ALL_CALLS : DD_DETECT_HANGS; > dscreen->no_flush = no_flush; > + dscreen->verbose = strstr(option, "verbose") != NULL; > > switch (dscreen->mode) { > case DD_DUMP_ALL_CALLS: > diff --git a/src/gallium/drivers/ddebug/dd_util.h > b/src/gallium/drivers/ddebug/dd_util.h > index c217c8e..093bdff 100644 > --- a/src/gallium/drivers/ddebug/dd_util.h > +++ b/src/gallium/drivers/ddebug/dd_util.h > @@ -40,7 +40,7 @@ > #define DD_DIR "ddebug_dumps" > > static inline FILE * > -dd_get_debug_file() > +dd_get_debug_file(bool verbose) > { > static unsigned index; > char proc_name[128], dir[256], name[512]; > @@ -65,6 +65,9 @@ dd_get_debug_file() > return NULL; > } > > + if (verbose) > + fprintf(stderr, "dd: dumping to file %s\n", name); > + > return f; > } > > diff --git a/src/gallium/drivers/radeonsi/si_debug.c > b/src/gallium/drivers/radeonsi/si_debug.c > index a07b1c5..e16ebbd 100644 > --- a/src/gallium/drivers/radeonsi/si_debug.c > +++ b/src/gallium/drivers/radeonsi/si_debug.c > @@ -771,7 +771,7 @@ void si_check_vm_faults(struct si_context *sctx) > if (!si_vm_fault_occured(sctx, &addr)) > return; > > - f = dd_get_debug_file(); > + f = dd_get_debug_file(false); > if (!f) > return; > > -- > 2.5.0 > > _______________________________________________ > mesa-dev mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
