summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_state.h
diff options
context:
space:
mode:
authorSonny Jiang <[email protected]>2018-06-07 12:13:48 -0400
committerMarek Olšák <[email protected]>2018-06-07 23:26:25 -0400
commit43b0269ce3e349590c49f082008ecfe9e7f85014 (patch)
tree0afb0247665f66cc2077c6efd078b69a18909e49 /src/gallium/drivers/radeonsi/si_state.h
parentd797f1f47efd389ce656fa60fa51687c7c58daa4 (diff)
radeonsi: emit_db_render_state 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]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_state.h')
-rw-r--r--src/gallium/drivers/radeonsi/si_state.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.h b/src/gallium/drivers/radeonsi/si_state.h
index d235f31c792..fb5f7211895 100644
--- a/src/gallium/drivers/radeonsi/si_state.h
+++ b/src/gallium/drivers/radeonsi/si_state.h
@@ -206,6 +206,22 @@ struct si_shader_data {
uint32_t sh_base[SI_NUM_SHADERS];
};
+/* The list of registers whose emitted values are remembered by si_context. */
+enum si_tracked_reg {
+ SI_TRACKED_DB_RENDER_CONTROL, /* 2 consecutive registers */
+ SI_TRACKED_DB_COUNT_CONTROL,
+
+ SI_TRACKED_DB_RENDER_OVERRIDE2,
+ SI_TRACKED_DB_SHADER_CONTROL,
+
+ SI_NUM_TRACKED_REGS,
+};
+
+struct si_tracked_regs {
+ uint32_t reg_saved;
+ uint32_t reg_value[SI_NUM_TRACKED_REGS];
+};
+
/* Private read-write buffer slots. */
enum {
SI_ES_RING_ESGS,