summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSonny Jiang <[email protected]>2018-06-07 12:13:51 -0400
committerMarek Olšák <[email protected]>2018-06-07 23:26:36 -0400
commit06b47005d327c311f358ac34c22a1e3ffc3ca11f (patch)
tree7c823c3db2a96ea7990cabe67b2899698df99e8b
parenta1b4b00ce2b8db38ab56eff97a9f7417c68ba5c1 (diff)
radeonsi: emit_msaa_sample_locs packets optimization
Remembering latest states of registers to eliminate redunant SET_CONTEXT_REG packets Signed-off-by: Sonny Jiang <[email protected]> Signed-off-by: Marek Olšák <[email protected]>
-rw-r--r--src/gallium/drivers/radeonsi/si_state.c6
-rw-r--r--src/gallium/drivers/radeonsi/si_state.h2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 5f3ab45f42f..199d7408d79 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -3250,8 +3250,10 @@ static void si_emit_msaa_sample_locs(struct si_context *sctx)
rs && !rs->multisample_enable)
small_prim_filter_cntl &= C_028830_SMALL_PRIM_FILTER_ENABLE;
- radeon_set_context_reg(cs, R_028830_PA_SU_SMALL_PRIM_FILTER_CNTL,
- small_prim_filter_cntl);
+ radeon_opt_set_context_reg(sctx,
+ R_028830_PA_SU_SMALL_PRIM_FILTER_CNTL,
+ SI_TRACKED_PA_SU_SMALL_PRIM_FILTER_CNTL,
+ small_prim_filter_cntl);
}
}
diff --git a/src/gallium/drivers/radeonsi/si_state.h b/src/gallium/drivers/radeonsi/si_state.h
index a5af7de2274..5ff4f5714f3 100644
--- a/src/gallium/drivers/radeonsi/si_state.h
+++ b/src/gallium/drivers/radeonsi/si_state.h
@@ -227,6 +227,8 @@ enum si_tracked_reg {
SI_TRACKED_DB_EQAA,
SI_TRACKED_PA_SC_MODE_CNTL_1,
+ SI_TRACKED_PA_SU_SMALL_PRIM_FILTER_CNTL,
+
SI_NUM_TRACKED_REGS,
};