i965/blorp: Support overriding destination alpha to 1.0.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 29 Jan 2013 06:03:18 +0000 (22:03 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 6 Feb 2013 18:00:53 +0000 (10:00 -0800)
commitc0554141a9b831b4e614747104dcbbe0fe489b9d
tree632aabfa771388567d548f347715e9a573fe3e7a
parent0b3bebbaacf42ae07f712b5693f7b00fad3ff35e
i965/blorp: Support overriding destination alpha to 1.0.

Currently, Blorp requires the source and destination formats to be
equal.  However, we'd really like to be able to blit between XRGB and
ARGB formats; our BLT engine paths have supported this for a long time.

For ARGB -> XRGB, nothing needs to occur: the missing alpha is already
interpreted as 1.0.  For XRGB -> ARGB, we need to smash the alpha
channel to 1.0 when writing the destination colors.  This is fairly
straightforward with blending.

For now, this code is never used, as the source and destination formats
still must be equal.  The next patch will relax that restriction.

NOTE: This is a candidate for the 9.1 branch.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Tested-by: Martin Steigerwald <martin@lichtvoll.de>
src/mesa/drivers/dri/i965/gen6_blorp.cpp