i965: Disable hardware blending if advanced blending is in use.
We'll do blending in the shader in this case, so just disable the hardware blending. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
@@ -159,7 +159,7 @@ static void upload_cc_unit(struct brw_context *brw)
|
||||
if (ctx->Color.ColorLogicOpEnabled && ctx->Color.LogicOp != GL_COPY) {
|
||||
cc->cc2.logicop_enable = 1;
|
||||
cc->cc5.logicop_func = intel_translate_logic_op(ctx->Color.LogicOp);
|
||||
} else if (ctx->Color.BlendEnabled) {
|
||||
} else if (ctx->Color.BlendEnabled && !ctx->Color._AdvancedBlendMode) {
|
||||
GLenum eqRGB = ctx->Color.Blend[0].EquationRGB;
|
||||
GLenum eqA = ctx->Color.Blend[0].EquationA;
|
||||
GLenum srcRGB = ctx->Color.Blend[0].SrcRGB;
|
||||
|
||||
@@ -926,8 +926,8 @@ gen4_update_renderbuffer_surface(struct brw_context *brw,
|
||||
|
||||
if (brw->gen < 6) {
|
||||
/* _NEW_COLOR */
|
||||
if (!ctx->Color.ColorLogicOpEnabled &&
|
||||
(ctx->Color.BlendEnabled & (1 << unit)))
|
||||
if (!ctx->Color.ColorLogicOpEnabled && !ctx->Color._AdvancedBlendMode &&
|
||||
(ctx->Color.BlendEnabled & (1 << unit)))
|
||||
surf[0] |= BRW_SURFACE_BLEND_ENABLED;
|
||||
|
||||
if (!ctx->Color.ColorMask[unit][0])
|
||||
|
||||
@@ -104,7 +104,8 @@ gen6_upload_blend_state(struct brw_context *brw)
|
||||
blend[b].blend1.logic_op_func =
|
||||
intel_translate_logic_op(ctx->Color.LogicOp);
|
||||
}
|
||||
} else if (ctx->Color.BlendEnabled & (1 << b) && !integer) {
|
||||
} else if (ctx->Color.BlendEnabled & (1 << b) && !integer &&
|
||||
!ctx->Color._AdvancedBlendMode) {
|
||||
GLenum eqRGB = ctx->Color.Blend[b].EquationRGB;
|
||||
GLenum eqA = ctx->Color.Blend[b].EquationA;
|
||||
GLenum srcRGB = ctx->Color.Blend[b].SrcRGB;
|
||||
|
||||
@@ -107,7 +107,8 @@ gen8_upload_blend_state(struct brw_context *brw)
|
||||
GEN8_BLEND_LOGIC_OP_ENABLE |
|
||||
SET_FIELD(intel_translate_logic_op(ctx->Color.LogicOp),
|
||||
GEN8_BLEND_LOGIC_OP_FUNCTION);
|
||||
} else if (ctx->Color.BlendEnabled & (1 << i) && !integer) {
|
||||
} else if (ctx->Color.BlendEnabled & (1 << i) && !integer &&
|
||||
!ctx->Color._AdvancedBlendMode) {
|
||||
GLenum eqRGB = ctx->Color.Blend[i].EquationRGB;
|
||||
GLenum eqA = ctx->Color.Blend[i].EquationA;
|
||||
GLenum srcRGB = ctx->Color.Blend[i].SrcRGB;
|
||||
|
||||
Reference in New Issue
Block a user