diff options
Diffstat (limited to 'src/gallium/drivers/ddebug/dd_screen.c')
-rw-r--r-- | src/gallium/drivers/ddebug/dd_screen.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/drivers/ddebug/dd_screen.c b/src/gallium/drivers/ddebug/dd_screen.c index 46869ab63f2..412ea365ce2 100644 --- a/src/gallium/drivers/ddebug/dd_screen.c +++ b/src/gallium/drivers/ddebug/dd_screen.c @@ -314,6 +314,11 @@ ddebug_screen_create(struct pipe_screen *screen) puts(" fence timeout and dump context and driver information into"); puts(" $HOME/"DD_DIR"/ when a hang is detected."); puts(""); + puts(" GALLIUM_DDEBUG=\"pipelined [timeout in ms] [verbose]\""); + puts(" Detect a device hang after every draw call based on the given fence"); + puts(" timeout without flushes and dump context and driver information into"); + puts(" $HOME/"DD_DIR"/ when a hang is detected."); + puts(""); puts(" GALLIUM_DDEBUG=\"apitrace [call#] [verbose]\""); puts(" Dump apitrace draw call information into $HOME/"DD_DIR"/. Implies 'noflush'."); puts(""); @@ -337,6 +342,11 @@ ddebug_screen_create(struct pipe_screen *screen) if (sscanf(option+8, "%u", &apitrace_dump_call) != 1) return screen; + } else if (!strncmp(option, "pipelined", 8)) { + mode = DD_DETECT_HANGS_PIPELINED; + + if (sscanf(option+10, "%u", &timeout) != 1) + return screen; } else { mode = DD_DETECT_HANGS; @@ -392,6 +402,7 @@ ddebug_screen_create(struct pipe_screen *screen) fprintf(stderr, "Gallium debugger active. Logging all calls.\n"); break; case DD_DETECT_HANGS: + case DD_DETECT_HANGS_PIPELINED: fprintf(stderr, "Gallium debugger active. " "The hang detection timeout is %i ms.\n", timeout); break; |