diff options
author | Sonny Jiang <[email protected]> | 2018-06-07 12:13:48 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2018-06-07 23:26:25 -0400 |
commit | 43b0269ce3e349590c49f082008ecfe9e7f85014 (patch) | |
tree | 0afb0247665f66cc2077c6efd078b69a18909e49 /src/gallium/drivers/radeonsi/si_state.h | |
parent | d797f1f47efd389ce656fa60fa51687c7c58daa4 (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.h | 16 |
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, |