summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnuj Phogat <anuj.phogat@gmail.com>2012-09-21 15:16:38 -0700
committerIan Romanick <ian.d.romanick@intel.com>2012-10-05 15:55:47 -0700
commitc566267f5c3b480c1a805790c45fc13ab52c98e2 (patch)
tree9886ac2dc8e5f4cdd5b8944badb4e01af5fcadfb
parent8491e03b2befd7e9d16c5d17f95a83d91c5b16c9 (diff)
intel/i965: Disable SampleAlphaToOne if dual source blending enabled
From SandyBridge PRM, volume 2 Part 1, section 12.2.3, BLEND_STATE: DWord 1, Bit 30 (AlphaToOne Enable): "If Dual Source Blending is enabled, this bit must be disabled" Note: This is a candidate for stable branches. Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> (cherry picked from commit ea0d08872724b5e31e9e32db2338e15fdfdcc4de)
-rw-r--r--src/mesa/drivers/dri/i965/gen6_cc.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_cc.c b/src/mesa/drivers/dri/i965/gen6_cc.c
index 6aeaaa253b9..e9c7f5064df 100644
--- a/src/mesa/drivers/dri/i965/gen6_cc.c
+++ b/src/mesa/drivers/dri/i965/gen6_cc.c
@@ -174,8 +174,17 @@ gen6_upload_blend_state(struct brw_context *brw)
/* _NEW_MULTISAMPLE */
blend[b].blend1.alpha_to_coverage =
ctx->Multisample._Enabled && ctx->Multisample.SampleAlphaToCoverage;
- blend[b].blend1.alpha_to_one =
- ctx->Multisample._Enabled && ctx->Multisample.SampleAlphaToOne;
+
+ /* From SandyBridge PRM, volume 2 Part 1, section 8.2.3, BLEND_STATE:
+ * DWord 1, Bit 30 (AlphaToOne Enable):
+ * "If Dual Source Blending is enabled, this bit must be disabled"
+ */
+ if (ctx->Color.Blend[b]._UsesDualSrc)
+ blend[b].blend1.alpha_to_one = false;
+ else
+ blend[b].blend1.alpha_to_one =
+ ctx->Multisample._Enabled && ctx->Multisample.SampleAlphaToOne;
+
blend[b].blend1.alpha_to_coverage_dither = (brw->intel.gen >= 7);
}
else {