summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/ilo/ilo_gpe.h
diff options
context:
space:
mode:
authorChia-I Wu <[email protected]>2013-05-31 16:11:38 +0800
committerChia-I Wu <[email protected]>2013-06-07 11:13:15 +0800
commiteea1be2072a1c980871d80df71d3e39a67fdfb0a (patch)
tree8ad3d587c43ae0c58dc57b95901ef96b48915041 /src/gallium/drivers/ilo/ilo_gpe.h
parentb3c9e2161f22c3c6b8b2fc83ea4bc7ea883329d7 (diff)
ilo: introduce blend CSO
Introduce ilo_blend_cso and initialize it in create_blend_state(). This saves us from having to construct hardware blend states in draw_vbo().
Diffstat (limited to 'src/gallium/drivers/ilo/ilo_gpe.h')
-rw-r--r--src/gallium/drivers/ilo/ilo_gpe.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/gallium/drivers/ilo/ilo_gpe.h b/src/gallium/drivers/ilo/ilo_gpe.h
index 467a6b3a216..dc4e80eb97e 100644
--- a/src/gallium/drivers/ilo/ilo_gpe.h
+++ b/src/gallium/drivers/ilo/ilo_gpe.h
@@ -107,8 +107,23 @@ struct ilo_dsa_state {
struct pipe_depth_stencil_alpha_state state;
};
+struct ilo_blend_cso {
+ /* BLEND_STATE */
+ uint32_t payload[2];
+
+ uint32_t dw_blend;
+ uint32_t dw_blend_dst_alpha_forced_one;
+
+ uint32_t dw_logicop;
+ uint32_t dw_alpha_mod;
+};
+
struct ilo_blend_state {
- struct pipe_blend_state state;
+ struct ilo_blend_cso cso[ILO_MAX_DRAW_BUFFERS];
+
+ bool independent_blend_enable;
+ bool dual_blend;
+ bool alpha_to_coverage;
};
struct ilo_sampler_cso {
@@ -192,6 +207,11 @@ ilo_gpe_set_scissor_null(const struct ilo_dev_info *dev,
struct ilo_scissor_state *scissor);
void
+ilo_gpe_init_blend(const struct ilo_dev_info *dev,
+ const struct pipe_blend_state *state,
+ struct ilo_blend_state *blend);
+
+void
ilo_gpe_init_sampler_cso(const struct ilo_dev_info *dev,
const struct pipe_sampler_state *state,
struct ilo_sampler_cso *sampler);