Module: Mesa Branch: master Commit: 0eea33b0696cee2cdea1e63a1714cec267d9b990 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0eea33b0696cee2cdea1e63a1714cec267d9b990
Author: Brian Paul <[email protected]> Date: Mon Apr 5 11:00:52 2010 -0600 softpipe: index the correct blend/mask state index Need to check pipe_blend_state::independent_blend_enable to determine which render target/index to use when checking blend enable and colormask state. This is part of the fix for piglit/fbo-drawbuffers --- src/gallium/drivers/softpipe/sp_quad_blend.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/softpipe/sp_quad_blend.c b/src/gallium/drivers/softpipe/sp_quad_blend.c index d65307b..ead4893 100644 --- a/src/gallium/drivers/softpipe/sp_quad_blend.c +++ b/src/gallium/drivers/softpipe/sp_quad_blend.c @@ -744,6 +744,8 @@ blend_fallback(struct quad_stage *qs, for (cbuf = 0; cbuf < softpipe->framebuffer.nr_cbufs; cbuf++) { + /* which blend/mask state index to use: */ + const uint blend_buf = blend->independent_blend_enable ? cbuf : 0; float dest[4][QUAD_SIZE]; struct softpipe_cached_tile *tile = sp_get_cached_tile(softpipe->cbuf_cache[cbuf], @@ -771,11 +773,11 @@ blend_fallback(struct quad_stage *qs, if (blend->logicop_enable) { logicop_quad( qs, quadColor, dest ); } - else if (blend->rt[cbuf].blend_enable) { + else if (blend->rt[blend_buf].blend_enable) { blend_quad( qs, quadColor, dest, cbuf ); } - if (blend->rt[cbuf].colormask != 0xf) + if (blend->rt[blend_buf].colormask != 0xf) colormask_quad( blend->rt[cbuf].colormask, quadColor, dest); /* Output color values _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
