diff options
author | Russell King <rmk@armlinux.org.uk> | 2016-11-27 15:02:32 +0000 |
---|---|---|
committer | Russell King <rmk@armlinux.org.uk> | 2016-11-27 15:02:32 +0000 |
commit | 3080f6afb5ae162f54490ac8f041f0d07a5f3d0f (patch) | |
tree | ab00dfd819c05cf601356f5f4070c6bbbf431289 | |
parent | 1859319b32edcce06aa0bc6b751e5f031def8c2a (diff) |
etnaviv: split blend modes from the alpha mode
Split the individual blend modes from the combined alpha mode to allow
easier testing and updating these modes.
Signed-off-by: Russell King <rmk@armlinux.org.uk>
-rw-r--r-- | etnaviv/etnaviv_op.c | 7 | ||||
-rw-r--r-- | etnaviv/etnaviv_op.h | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/etnaviv/etnaviv_op.c b/etnaviv/etnaviv_op.c index 838438a..53d0c05 100644 --- a/etnaviv/etnaviv_op.c +++ b/etnaviv/etnaviv_op.c @@ -190,12 +190,17 @@ static void etnaviv_set_blend(struct etnaviv *etnaviv, EL(VIVS_DE_ALPHA_CONTROL_ENABLE_OFF); } else { Bool pe20 = VIV_FEATURE(etnaviv->conn, chipMinorFeatures0, 2DPE20); + uint32_t alpha_mode; + + alpha_mode = op->alpha_mode | + VIVS_DE_ALPHA_MODES_SRC_BLENDING_MODE(op->src_mode) | + VIVS_DE_ALPHA_MODES_DST_BLENDING_MODE(op->dst_mode); EL(LOADSTATE(VIVS_DE_ALPHA_CONTROL, 2)); EL(VIVS_DE_ALPHA_CONTROL_ENABLE_ON | VIVS_DE_ALPHA_CONTROL_PE10_GLOBAL_SRC_ALPHA(op->src_alpha) | VIVS_DE_ALPHA_CONTROL_PE10_GLOBAL_DST_ALPHA(op->dst_alpha)); - EL(op->alpha_mode); + EL(alpha_mode); EL_ALIGN(); if (pe20) { diff --git a/etnaviv/etnaviv_op.h b/etnaviv/etnaviv_op.h index 19e0063..7f95c29 100644 --- a/etnaviv/etnaviv_op.h +++ b/etnaviv/etnaviv_op.h @@ -28,6 +28,8 @@ struct etnaviv_format { struct etnaviv_blend_op { uint32_t alpha_mode; + uint8_t src_mode; /* DE_BLENDMODE_xx */ + uint8_t dst_mode; /* DE_BLENDMODE_xx */ uint8_t src_alpha; uint8_t dst_alpha; }; |