From ea0d08872724b5e31e9e32db2338e15fdfdcc4de Mon Sep 17 00:00:00 2001 From: Anuj Phogat Date: Fri, 21 Sep 2012 15:16:38 -0700 Subject: [PATCH] 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 Reviewed-by: Eric Anholt --- src/mesa/drivers/dri/i965/gen6_cc.c | 13 +++++++++++-- 1 file 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 { -- 2.30.2