r600g: atomize blend state
authorMarek Olšák <maraeo@gmail.com>
Fri, 5 Oct 2012 00:45:29 +0000 (02:45 +0200)
committerMarek Olšák <maraeo@gmail.com>
Tue, 9 Oct 2012 22:16:32 +0000 (00:16 +0200)
commitfaaba52aedf9807ced2ddfccc4133589a7bacd5f
tree0ea3c1c03ffa3538f9a0504d7b164fde4e95500e
parenteb65fefa4bd5e9a6f08ec599b95f9d63d11c15fa
r600g: atomize blend state

This is not so trivial, because we disable blending if the dual src
blending is turned on and the number of color outputs is less than 2.
I decided to create 2 command buffers in the blend state object and just
switch between them when needed, because there are other states unrelated
to blending (like the color mask) and those shouldn't be changed
(the old code had it wrong).

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
src/gallium/drivers/r600/evergreen_hw_context.c
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_hw_context_priv.h
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_state_common.c