[Mesa-dev] [PATCH 6/7] r600g: change programming of CB_SHADER_MASK on r600-r700

Marek Olšák maraeo at gmail.com
Wed Aug 22 18:54:17 PDT 2012


This one actually makes more sense and gives the expected value
for MSAA resolve.
---
 src/gallium/drivers/r600/r600_state.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 8f6b0cd..cf7fa01 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));
-- 
1.7.9.5



More information about the mesa-dev mailing list