summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/ddebug/dd_draw.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-07-19 21:41:03 +0200
committerMarek Olšák <[email protected]>2016-07-26 23:06:46 +0200
commit6bf81de339289b0d005553414ce568b136a0ca5f (patch)
tree81b305d0fa4434db18b4caf3789475fa5727d103 /src/gallium/drivers/ddebug/dd_draw.c
parent9ace2c13550609dfe78164f104500d438821f383 (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/dd_draw.c')
-rw-r--r--src/gallium/drivers/ddebug/dd_draw.c12
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();