diff options
author | Marek Olšák <[email protected]> | 2012-10-07 15:38:32 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-10-10 00:17:03 +0200 |
commit | ae25b932456eb368ea91d167614751172edacfee (patch) | |
tree | 65cbb28404c3f62d0e8b5ea5b01e6d346c34fcd1 /src | |
parent | ef723613e017ba33e9d9568ae59eb9faab80aba2 (diff) |
r600g: emit PS_PARTIAL_FLUSH at the beginning of CS
Reviewed-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/r600/evergreen_state.c | 8 | ||||
-rw-r--r-- | 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 bc3aedb1f1a..2e58a287a08 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 52441438e88..567835f9c98 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; |