aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/radeonsi_pipe.h
diff options
context:
space:
mode:
authorJerome Glisse <[email protected]>2013-03-25 11:46:38 -0400
committerJerome Glisse <[email protected]>2013-03-27 11:38:02 -0400
commit3f7d9710e8f128c6bf6da3a87789afac8524ccd7 (patch)
treedff5d9c4ae9d5acd6aeec9f91239814fa02739d6 /src/gallium/drivers/radeonsi/radeonsi_pipe.h
parent21a2dfa55d7a797022de267efbfebaf630940c13 (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.h12
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
*/