diff options
author | Marek Olšák <[email protected]> | 2017-08-04 17:10:58 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-08-07 21:12:24 +0200 |
commit | e887c68bd23fa6e7421279286842f15746eb5e28 (patch) | |
tree | 5b0e74e48c5c0cde79aa41ef9da05b70171dd679 /src/gallium/drivers/radeonsi/si_pipe.h | |
parent | a7b0014d1a809268e55483ccc2c66674847f4a6e (diff) |
radeonsi: add a separate dirty mask for prefetches
so that we don't rely on si_pm4_state_enabled_and_changed, allowing us
to move prefetches after draw calls.
v2: ckear the dirty mask after unbinding shaders
Tested-by: Dieter Nützel <[email protected]> (v1)
Reviewed-by: Nicolai Hähnle <[email protected]> (v1)
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_pipe.h')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_pipe.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index d21388649a1..62b64e16879 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -68,6 +68,14 @@ #define SI_CONTEXT_VGT_FLUSH (R600_CONTEXT_PRIVATE_FLAG << 12) #define SI_CONTEXT_VGT_STREAMOUT_SYNC (R600_CONTEXT_PRIVATE_FLAG << 13) +#define SI_PREFETCH_VBO_DESCRIPTORS (1 << 0) +#define SI_PREFETCH_LS (1 << 1) +#define SI_PREFETCH_HS (1 << 2) +#define SI_PREFETCH_ES (1 << 3) +#define SI_PREFETCH_GS (1 << 4) +#define SI_PREFETCH_VS (1 << 5) +#define SI_PREFETCH_PS (1 << 6) + #define SI_MAX_BORDER_COLORS 4096 #define SIX_BITS 0x3F @@ -279,11 +287,11 @@ struct si_context { struct u_suballocator *ce_suballocator; unsigned ce_ram_saved_offset; uint16_t total_ce_ram_allocated; + uint16_t prefetch_L2_mask; bool ce_need_synchronization:1; bool gfx_flush_in_progress:1; bool compute_is_busy:1; - bool prefetch_L2:1; /* Atoms (direct states). */ union si_state_atoms atoms; |