llvmpipe: implement dual source blending
authorRoland Scheidegger <sroland@vmware.com>
Tue, 12 Feb 2013 02:41:48 +0000 (03:41 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Tue, 12 Feb 2013 02:41:48 +0000 (03:41 +0100)
commit8b8bca06dff5b30da1ac97d18cc0e91acb13d516
tree131d4b6fbee5ba87e5464c867d40af7050b821a1
parenta73181be6d169c597b60398cbc7e291a26903a68
llvmpipe: implement dual source blending

link up the fs outputs and blend inputs, and make sure the second blend source
is correctly loaded and converted (which is quite complex).
There's a slight refactoring of the monster generate_unswizzled_blend()
function where it makes sense to factor out alpha conversion (which needs
to run twice for dual source blend).
This passes piglit arb_blend_func_extended tests.

v2: remove new but ultimately not used function...

Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/drivers/llvmpipe/lp_bld_blend.h
src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/gallium/drivers/llvmpipe/lp_test_blend.c