[Mesa-dev] [PATCH] radeonsi: add support for trace buffer.

j.glisse at gmail.com j.glisse at gmail.com
Thu Jul 24 15:07:28 PDT 2014


From: Jérôme Glisse <jglisse at redhat.com>

Trace buffer allow to dump a command buffer which is fully repliable
as a standalone c program. This make debuging lockup immensively
simpler. This patch only plug the core minimal stuff and is still
missing the more fancy aspect that are in r600g. It however already
proved useful in debuging hawaii.

Signed-off-by: Jérôme Glisse <jglisse at redhat.com>
---
 src/gallium/drivers/radeonsi/si_hw_context.c | 2 +-
 src/gallium/drivers/radeonsi/si_pipe.c       | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_hw_context.c b/src/gallium/drivers/radeonsi/si_hw_context.c
index 56fa664..c947cd0 100644
--- a/src/gallium/drivers/radeonsi/si_hw_context.c
+++ b/src/gallium/drivers/radeonsi/si_hw_context.c
@@ -115,7 +115,7 @@ void si_context_gfx_flush(void *context, unsigned flags,
 #endif
 
 	/* Flush the CS. */
-	ctx->b.ws->cs_flush(cs, flags, fence, 0);
+	ctx->b.ws->cs_flush(cs, flags, fence, ctx->screen->b.cs_count++);
 	ctx->b.rings.gfx.flushing = false;
 
 #if SI_TRACE_CS
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index 4f19268..2a7049b 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -98,7 +98,8 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, void *
 	}
 
 	sctx->b.rings.gfx.cs = ws->cs_create(ws, RING_GFX, si_context_gfx_flush,
-					     sctx, NULL);
+					     sctx, sscreen->b.trace_bo ?
+					     sscreen->b.trace_bo->cs_buf : NULL);
 	sctx->b.rings.gfx.flush = si_context_gfx_flush;
 
 	si_init_all_descriptors(sctx);
-- 
1.9.3



More information about the mesa-dev mailing list