diff options
author | Marek Olšák <[email protected]> | 2016-07-19 21:41:03 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2016-07-26 23:06:46 +0200 |
commit | 6bf81de339289b0d005553414ce568b136a0ca5f (patch) | |
tree | 81b305d0fa4434db18b4caf3789475fa5727d103 /src/gallium/drivers/ddebug | |
parent | 9ace2c13550609dfe78164f104500d438821f383 (diff) |
gallium: rework flags for pipe_context::dump_debug_state
The pipelined hang detection mode will not want to dump everything.
(and it's also time consuming) It will only dump shaders after a draw call
and then dump the status registers separately if a hang is detected.
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/ddebug')
-rw-r--r-- | src/gallium/drivers/ddebug/dd_draw.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/gallium/drivers/ddebug/dd_draw.c b/src/gallium/drivers/ddebug/dd_draw.c index f8047ccc852..c3fd9685b17 100644 --- a/src/gallium/drivers/ddebug/dd_draw.c +++ b/src/gallium/drivers/ddebug/dd_draw.c @@ -595,7 +595,11 @@ dd_flush_and_handle_hang(struct dd_context *dctx, if (f) { fprintf(f, "dd: %s.\n", cause); - dd_dump_driver_state(dctx, f, PIPE_DEBUG_DEVICE_IS_HUNG); + dd_dump_driver_state(dctx, f, + PIPE_DUMP_DEVICE_STATUS_REGISTERS | + PIPE_DUMP_CURRENT_STATES | + PIPE_DUMP_CURRENT_SHADERS | + PIPE_DUMP_LAST_COMMAND_BUFFER); dd_close_file_stream(f); } @@ -649,7 +653,11 @@ dd_after_draw(struct dd_context *dctx, struct dd_call *call) case DD_DETECT_HANGS: if (!dscreen->no_flush && dd_flush_and_check_hang(dctx, NULL, 0)) { - dd_dump_call(dctx, call, PIPE_DEBUG_DEVICE_IS_HUNG); + dd_dump_call(dctx, call, + PIPE_DUMP_DEVICE_STATUS_REGISTERS | + PIPE_DUMP_CURRENT_STATES | + PIPE_DUMP_CURRENT_SHADERS | + PIPE_DUMP_LAST_COMMAND_BUFFER); /* Terminate the process to prevent future hangs. */ dd_kill_process(); |