diff options
author | Marek Olšák <[email protected]> | 2012-09-09 06:08:39 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-09-13 20:18:44 +0200 |
commit | fd2e34d557c07fba5a6e344e915f73dcfb66d0b4 (patch) | |
tree | c560ea82c4f443fc617446507c1ebc2fa35f4e33 /src/gallium/drivers/r600/r600.h | |
parent | 6a5a4d59ce63aa1fa14d3dd6c50169c532424b6d (diff) |
r600g: simplify flushing
Based on the patch called "simplify and fix flushing and synchronization"
by Jerome Glisse.
Rebased, removed unneded code, simplified more and cleaned up.
Also, SH_ACTION_ENA is not set when changing shaders (hw doesn't seem
to need it). It's only used to flush constant buffers.
Reviewed-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600.h')
-rw-r--r-- | src/gallium/drivers/r600/r600.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/gallium/drivers/r600/r600.h b/src/gallium/drivers/r600/r600.h index af7b0ca2e74..7c1d77313de 100644 --- a/src/gallium/drivers/r600/r600.h +++ b/src/gallium/drivers/r600/r600.h @@ -180,9 +180,16 @@ struct r600_so_target { unsigned so_index; }; -#define R600_CONTEXT_DRAW_PENDING (1 << 0) -#define R600_CONTEXT_DST_CACHES_DIRTY (1 << 1) -#define R600_PARTIAL_FLUSH (1 << 2) +#define R600_CONTEXT_PS_PARTIAL_FLUSH (1 << 0) +#define R600_CONTEXT_CB_FLUSH (1 << 1) +#define R600_CONTEXT_DB_FLUSH (1 << 2) +#define R600_CONTEXT_SHADERCONST_FLUSH (1 << 3) +#define R600_CONTEXT_TEX_FLUSH (1 << 4) +#define R600_CONTEXT_VTX_FLUSH (1 << 5) +#define R600_CONTEXT_STREAMOUT_FLUSH (1 << 6) +#define R600_CONTEXT_WAIT_IDLE (1 << 7) +#define R600_CONTEXT_FLUSH_AND_INV (1 << 8) +#define R600_CONTEXT_HTILE_ERRATA (1 << 9) struct r600_context; struct r600_screen; @@ -196,10 +203,7 @@ void r600_context_flush(struct r600_context *ctx, unsigned flags); void r600_context_emit_fence(struct r600_context *ctx, struct r600_resource *fence, unsigned offset, unsigned value); -void r600_inval_shader_cache(struct r600_context *ctx); -void r600_inval_texture_cache(struct r600_context *ctx); -void r600_inval_vertex_cache(struct r600_context *ctx); -void r600_flush_framebuffer(struct r600_context *ctx, bool flush_now); +void r600_flush_emit(struct r600_context *ctx); void r600_context_streamout_begin(struct r600_context *ctx); void r600_context_streamout_end(struct r600_context *ctx); |