vega: don't enable blending if not necessary

In some places blending was enabled even though it wasn't necessary.
Also remove a (bogus) reenabling of color writes, which wasn't really used.
This commit is contained in:
Roland Scheidegger 2010-01-25 16:52:14 +01:00
parent dbc0e24ab8
commit 0d3a6a505d
3 changed files with 4 additions and 6 deletions

View file

@ -139,7 +139,7 @@ static void setup_blend()
blend.rt[0].colormask |= PIPE_MASK_B;
if (ctx->state.vg.filter_channel_mask & VG_ALPHA)
blend.rt[0].colormask |= PIPE_MASK_A;
blend.rt[0].blend_enable = 1; /* XXX why? */
blend.rt[0].blend_enable = 0;
cso_set_blend(ctx->cso_context, &blend);
}

View file

@ -354,7 +354,7 @@ static void setup_mask_blend()
struct pipe_blend_state blend;
memset(&blend, 0, sizeof(struct pipe_blend_state));
blend.rt[0].blend_enable = 1; /* XXX why? */
blend.rt[0].blend_enable = 0;
blend.rt[0].colormask = PIPE_MASK_RGBA;
blend.rt[0].rgb_src_factor = PIPE_BLENDFACTOR_ONE;
blend.rt[0].alpha_src_factor = PIPE_BLENDFACTOR_ONE;

View file

@ -286,8 +286,6 @@ static void update_clip_state(struct vg_context *ctx)
renderer_draw_quad(ctx->renderer, minx, miny, maxx, maxy, 0.0f);
}
blend->rt[0].colormask = PIPE_MASK_R; /*enable colorwrites*/
/* XXX really only for red channel? */
cso_restore_blend(ctx->cso_context);
cso_restore_fragment_shader(ctx->cso_context);
@ -311,7 +309,7 @@ void vg_validate_state(struct vg_context *ctx)
blend->rt[0].alpha_src_factor = PIPE_BLENDFACTOR_ONE;
blend->rt[0].rgb_dst_factor = PIPE_BLENDFACTOR_ZERO;
blend->rt[0].alpha_dst_factor = PIPE_BLENDFACTOR_ZERO;
/* could disable blending ? */
blend->rt[0].blend_enable = 0;
break;
case VG_BLEND_SRC_OVER:
blend->rt[0].rgb_src_factor = PIPE_BLENDFACTOR_SRC_ALPHA;
@ -345,7 +343,7 @@ void vg_validate_state(struct vg_context *ctx)
blend->rt[0].alpha_src_factor = PIPE_BLENDFACTOR_ONE;
blend->rt[0].rgb_dst_factor = PIPE_BLENDFACTOR_ZERO;
blend->rt[0].alpha_dst_factor = PIPE_BLENDFACTOR_ZERO;
/* could disable blending ? */
blend->rt[0].blend_enable = 0;
break;
case VG_BLEND_ADDITIVE:
blend->rt[0].rgb_src_factor = PIPE_BLENDFACTOR_ONE;