svga: fix blending regression
authorBrian Paul <brianp@vmware.com>
Thu, 22 Feb 2018 04:00:38 +0000 (21:00 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 2 Mar 2018 19:23:50 +0000 (12:23 -0700)
commitdc79b8840248ccc1860ae740f16f0f5309191445
treeb719b48ab269380ed8b55a62e498240c8cebb16c
parentb871a77316f301ae0262fb38036e3583c2a464c8
svga: fix blending regression

The earlier Mesa commit 3d06c8afb5 ("st/mesa: don't translate blend
state when it's disabled for a colorbuffer") subtly changed the
details of gallium's per-RT blend state.

In particular, when pipe_rt_blend_state[i].blend_enabled is true,
we have to get the src/dst blend terms from pipe_rt_blend_state[i],
not [0] as before.

We now have to scan the blend targets to find the first one that's
enabled (if any).  We have to use the index of that target for getting
the src/dst blend terms.  And note that we have to set identical blend
terms for all targets.

This fixes the Piglit fbo-drawbuffers2-blend test.  VMware bug 2063493.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
src/gallium/drivers/svga/svga_pipe_blend.c