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_pipe.h | |
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_pipe.h')
-rw-r--r-- | src/gallium/drivers/radeonsi/radeonsi_pipe.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/radeonsi_pipe.h b/src/gallium/drivers/radeonsi/radeonsi_pipe.h index d0f04f40562..40a5c8c3d90 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_pipe.h +++ b/src/gallium/drivers/radeonsi/radeonsi_pipe.h @@ -47,6 +47,9 @@ #define R600_BIG_ENDIAN 0 #endif +#define R600_TRACE_CS 0 +#define R600_TRACE_CS_DWORDS 6 + struct r600_pipe_fences { struct si_resource *bo; unsigned *data; @@ -67,6 +70,11 @@ struct r600_screen { struct r600_tiling_info tiling_info; struct util_slab_mempool pool_buffers; struct r600_pipe_fences fences; +#if R600_TRACE_CS + struct si_resource *trace_bo; + uint32_t *trace_ptr; + unsigned cs_count; +#endif }; struct si_pipe_sampler_view { @@ -226,6 +234,10 @@ void r600_translate_index_buffer(struct r600_context *r600, struct pipe_index_buffer *ib, unsigned count); +#if R600_TRACE_CS +void r600_trace_emit(struct r600_context *rctx); +#endif + /* * common helpers */ |