i965: Set up the color masking for the first drawbuffer on gen6.

Fixes glean/maskedClear
This commit is contained in:
Eric Anholt 2010-12-08 09:52:56 -08:00
parent d2028ba339
commit 0d3b8a5cc2
1 changed files with 9 additions and 0 deletions

View File

@ -35,6 +35,7 @@
struct gen6_blend_state_key {
GLboolean color_blend, alpha_enabled;
GLboolean dither;
GLboolean color_mask[4];
GLenum logic_op;
@ -53,6 +54,9 @@ blend_state_populate_key(struct brw_context *brw,
memset(key, 0, sizeof(*key));
/* _NEW_COLOR */
memcpy(key->color_mask, ctx->Color.ColorMask[0], sizeof(key->color_mask));
/* _NEW_COLOR */
if (ctx->Color._LogicOpEnabled)
key->logic_op = ctx->Color.LogicOp;
@ -137,6 +141,11 @@ blend_state_create_from_key(struct brw_context *brw,
blend.blend1.x_dither_offset = 0;
}
blend.blend1.write_disable_r = !key->color_mask[0];
blend.blend1.write_disable_g = !key->color_mask[1];
blend.blend1.write_disable_b = !key->color_mask[2];
blend.blend1.write_disable_a = !key->color_mask[3];
bo = brw_upload_cache(&brw->cache, BRW_BLEND_STATE,
key, sizeof(*key),
NULL, 0,