diff options
author | Jerome Glisse <[email protected]> | 2013-03-25 11:46:38 -0400 |
---|---|---|
committer | Jerome Glisse <[email protected]> | 2013-03-27 11:38:02 -0400 |
commit | 3f7d9710e8f128c6bf6da3a87789afac8524ccd7 (patch) | |
tree | dff5d9c4ae9d5acd6aeec9f91239814fa02739d6 /src/gallium/drivers/radeonsi/radeonsi_pm4.c | |
parent | 21a2dfa55d7a797022de267efbfebaf630940c13 (diff) |
radeonsi: add cs tracing v3
Same as on r600, trace cs execution by writting cs offset after each
states, this allow to pin point lockup inside command stream and
narrow down the scope of lockup investigation.
v2: Use WRITE_DATA packet instead of WRITE_MEM
v3: Remove useless nop packet
Signed-off-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/radeonsi_pm4.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/radeonsi_pm4.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/radeonsi_pm4.c b/src/gallium/drivers/radeonsi/radeonsi_pm4.c index 79a2521f339..8e01738253e 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_pm4.c +++ b/src/gallium/drivers/radeonsi/radeonsi_pm4.c @@ -199,6 +199,12 @@ unsigned si_pm4_dirty_dw(struct r600_context *rctx) continue; count += state->ndw; +#if R600_TRACE_CS + /* for tracing each states */ + if (rctx->screen->trace_bo) { + count += R600_TRACE_CS_DWORDS; + } +#endif } return count; @@ -219,6 +225,12 @@ void si_pm4_emit(struct r600_context *rctx, struct si_pm4_state *state) } cs->cdw += state->ndw; + +#if R600_TRACE_CS + if (rctx->screen->trace_bo) { + r600_trace_emit(rctx); + } +#endif } void si_pm4_emit_dirty(struct r600_context *rctx) |