[Mesa-dev] [PATCH 12/14] r600g: emit PS_PARTIAL_FLUSH at the beginning of CS

Marek Olšák maraeo at gmail.com
Sun Oct 7 11:08:14 PDT 2012


---
 src/gallium/drivers/r600/evergreen_state.c |    8 ++++++++
 src/gallium/drivers/r600/r600_state.c      |    4 ++++
 2 files changed, 12 insertions(+)

diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index bc3aedb..2e58a28 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -2441,6 +2441,10 @@ static void cayman_init_atom_start_cs(struct r600_context *rctx)
 	r600_store_value(cb, 0x80000000);
 	r600_store_value(cb, 0x80000000);
 
+	/* We're setting config registers here. */
+	r600_store_value(cb, PKT3(PKT3_EVENT_WRITE, 0, 0));
+	r600_store_value(cb, EVENT_TYPE(EVENT_TYPE_PS_PARTIAL_FLUSH) | EVENT_INDEX(4));
+
 	r600_store_config_reg_seq(cb, R_008C00_SQ_CONFIG, 2);
 	r600_store_value(cb, S_008C00_EXPORT_SRC_C(1)); /* R_008C00_SQ_CONFIG */
 	/* always set the temp clauses */
@@ -2842,6 +2846,10 @@ void evergreen_init_atom_start_cs(struct r600_context *rctx)
 	r600_store_value(cb, 0x80000000);
 	r600_store_value(cb, 0x80000000);
 
+	/* We're setting config registers here. */
+	r600_store_value(cb, PKT3(PKT3_EVENT_WRITE, 0, 0));
+	r600_store_value(cb, EVENT_TYPE(EVENT_TYPE_PS_PARTIAL_FLUSH) | EVENT_INDEX(4));
+
 	evergreen_init_common_regs(cb, rctx->chip_class
 			, rctx->family, rctx->screen->info.drm_minor);
 
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 5244143..567835f 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -2246,6 +2246,10 @@ void r600_init_atom_start_cs(struct r600_context *rctx)
 	r600_store_value(cb, 0x80000000);
 	r600_store_value(cb, 0x80000000);
 
+	/* We're setting config registers here. */
+	r600_store_value(cb, PKT3(PKT3_EVENT_WRITE, 0, 0));
+	r600_store_value(cb, EVENT_TYPE(EVENT_TYPE_PS_PARTIAL_FLUSH) | EVENT_INDEX(4));
+
 	family = rctx->family;
 	ps_prio = 0;
 	vs_prio = 1;
-- 
1.7.9.5



More information about the mesa-dev mailing list