[Mesa-dev] [PATCH 4/8] gallium/radeon: count contexts

Marek Olšák maraeo at gmail.com
Tue Aug 2 10:27:51 UTC 2016


From: Marek Olšák <marek.olsak at amd.com>

We don't wanna use unflushed fences when we have multiple contexts.
---
 src/gallium/drivers/radeon/r600_pipe_common.c | 3 +++
 src/gallium/drivers/radeon/r600_pipe_common.h | 1 +
 2 files changed, 4 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 7fd3fe0..5e9d0b6 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -471,6 +471,7 @@ bool r600_common_context_init(struct r600_common_context *rctx,
 		rctx->dma.flush = r600_flush_dma_ring;
 	}
 
+	p_atomic_inc(&rscreen->num_contexts);
 	return true;
 }
 
@@ -478,6 +479,8 @@ void r600_common_context_cleanup(struct r600_common_context *rctx)
 {
 	unsigned i,j;
 
+	p_atomic_dec(&rctx->screen->num_contexts);
+
 	/* Release DCC stats. */
 	for (i = 0; i < ARRAY_SIZE(rctx->dcc_stats); i++) {
 		assert(!rctx->dcc_stats[i].query_active);
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h
index 91e3cb2..ccaaeeb 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -363,6 +363,7 @@ struct r600_common_screen {
 	uint64_t			debug_flags;
 	bool				has_cp_dma;
 	bool				has_streamout;
+	int				num_contexts;
 
 	/* Texture filter settings. */
 	int				force_aniso; /* -1 = disabled */
-- 
2.7.4



More information about the mesa-dev mailing list