Mesa (master): r600g: emit PS_PARTIAL_FLUSH at the beginning of CS

Marek Olšák mareko at kemper.freedesktop.org
Tue Oct 9 22:29:53 UTC 2012


Module: Mesa
Branch: master
Commit: ae25b932456eb368ea91d167614751172edacfee
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ae25b932456eb368ea91d167614751172edacfee

Author: Marek Olšák <maraeo at gmail.com>
Date:   Sun Oct  7 15:38:32 2012 +0200

r600g: emit PS_PARTIAL_FLUSH at the beginning of CS

Reviewed-by: Jerome Glisse <jglisse at redhat.com>

---

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

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;




More information about the mesa-commit mailing list