diff options
author | Daniel Vetter <[email protected]> | 2011-03-15 18:36:00 +0100 |
---|---|---|
committer | Daniel Vetter <[email protected]> | 2011-03-15 18:36:00 +0100 |
commit | 288504fac7b659da6bd45f22ccfb39d130250f9c (patch) | |
tree | cd332c262764324cc4ffca7d10249375b7196c9f /src/gallium/drivers/i915/i915_context.h | |
parent | a99447314ca1cfce60f2a22285398fb222b2a440 (diff) |
i915g: split up static state
Early Z support is set in the DST_VARS command. Hence split up static
state emission to avoid reissuing to much on fragment shader changes,
especially the costly dst buffer relocations.
Signed-off-by: Daniel Vetter <[email protected]>
Diffstat (limited to 'src/gallium/drivers/i915/i915_context.h')
-rw-r--r-- | src/gallium/drivers/i915/i915_context.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/gallium/drivers/i915/i915_context.h b/src/gallium/drivers/i915/i915_context.h index e42c9dc923b..dacf50e870d 100644 --- a/src/gallium/drivers/i915/i915_context.h +++ b/src/gallium/drivers/i915/i915_context.h @@ -245,9 +245,10 @@ struct i915_context { struct i915_state current; unsigned hardware_dirty; - unsigned immediate_dirty; - unsigned dynamic_dirty; - unsigned flush_dirty; + unsigned immediate_dirty : I915_MAX_IMMEDIATE; + unsigned dynamic_dirty : I915_MAX_DYNAMIC; + unsigned static_dirty : 4; + unsigned flush_dirty : 2; struct i915_winsys_buffer *validation_buffers[2 + 1 + I915_TEX_UNITS]; int num_validation_buffers; @@ -317,6 +318,12 @@ struct i915_context { #define I915_FLUSH_CACHE 1 #define I915_PIPELINE_FLUSH 2 +/* split up static state */ +#define I915_DST_BUF_COLOR 1 +#define I915_DST_BUF_DEPTH 2 +#define I915_DST_VARS 4 +#define I915_DST_RECT 8 + static INLINE void i915_set_flush_dirty(struct i915_context *i915, unsigned flush) { |