aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-08-21 20:26:20 +0200
committerMarek Olšák <[email protected]>2012-08-30 19:43:55 +0200
commitedf22a5c6de5107c3f67357dad7cebbc8daf8368 (patch)
tree2ea7beb37f57818aec461938952ba83abe423156
parent1ff5f0882340c1d948a62c53ab2446b29e6b0d43 (diff)
r600g: change programming of CB_SHADER_MASK on r600-r700
This one actually makes more sense and gives the expected value for MSAA resolve. Reviewed-by: Jerome Glisse <[email protected]>
-rw-r--r--src/gallium/drivers/r600/r600_state.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 8f6b0cd988b..cf7fa01ffdf 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -1510,7 +1510,8 @@ static void r600_emit_cb_misc_state(struct r600_context *rctx, struct r600_atom
r600_write_context_reg_seq(cs, R_028238_CB_TARGET_MASK, 2);
r600_write_value(cs, a->blend_colormask & fb_colormask); /* R_028238_CB_TARGET_MASK */
- r600_write_value(cs, (a->dual_src_blend ? ps_colormask : 0) | fb_colormask); /* R_02823C_CB_SHADER_MASK */
+ /* Always enable the first color output to make sure alpha-test works even without one. */
+ r600_write_value(cs, 0xf | (multiwrite ? fb_colormask : ps_colormask)); /* R_02823C_CB_SHADER_MASK */
r600_write_context_reg(cs, R_028808_CB_COLOR_CONTROL,
a->cb_color_control |
S_028808_MULTIWRITE_ENABLE(multiwrite));