diff options
author | Marek Olšák <[email protected]> | 2012-07-18 04:17:11 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-07-18 04:17:11 +0200 |
commit | de4fd087cbccd47e703f750968b79525ddbe4554 (patch) | |
tree | 646ac6f48717b1288a6537ed8f40982f34fe9578 /src/gallium/drivers/r600/r600_state.c | |
parent | bc2f5fc01e678ecd19f921e5bc7bd55c131dde66 (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.c | 11 |
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) | |