diff options
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen6_cc.c | 13 |
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 { |