Mesa (master): gallium/radeon: count contexts
Marek Olšák
mareko at kemper.freedesktop.org
Sat Aug 6 12:31:02 UTC 2016
Module: Mesa
Branch: master
Commit: b403eb338533894ee012a96bf55653996c92ec7c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b403eb338533894ee012a96bf55653996c92ec7c
Author: Marek Olšák <marek.olsak at amd.com>
Date: Fri Jul 15 23:17:43 2016 +0200
gallium/radeon: count contexts
We don't wanna use unflushed fences when we have multiple contexts.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
---
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 */
More information about the mesa-commit
mailing list