summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_state.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-07-18 04:17:11 +0200
committerMarek Olšák <[email protected]>2012-07-18 04:17:11 +0200
commitde4fd087cbccd47e703f750968b79525ddbe4554 (patch)
tree646ac6f48717b1288a6537ed8f40982f34fe9578 /src/gallium/drivers/r600/r600_state.c
parentbc2f5fc01e678ecd19f921e5bc7bd55c131dde66 (diff)
r600g: always derive alphatest state from the first colorbuffer
Diffstat (limited to 'src/gallium/drivers/r600/r600_state.c')
-rw-r--r--src/gallium/drivers/r600/r600_state.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 4644034c916..269198bf971 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -1426,10 +1426,13 @@ static void r600_cb(struct r600_context *rctx, struct r600_pipe_state *rstate,
blend_bypass = 1;
}
- alphatest_bypass = ntype == V_0280A0_NUMBER_UINT || ntype == V_0280A0_NUMBER_SINT;
- if (rctx->alphatest_state.bypass != alphatest_bypass) {
- rctx->alphatest_state.bypass = alphatest_bypass;
- r600_atom_dirty(rctx, &rctx->alphatest_state.atom);
+ /* Alpha-test is done on the first colorbuffer only. */
+ if (cb == 0) {
+ alphatest_bypass = ntype == V_0280A0_NUMBER_UINT || ntype == V_0280A0_NUMBER_SINT;
+ if (rctx->alphatest_state.bypass != alphatest_bypass) {
+ rctx->alphatest_state.bypass = alphatest_bypass;
+ r600_atom_dirty(rctx, &rctx->alphatest_state.atom);
+ }
}
color_info |= S_0280A0_FORMAT(format) |