softpipe: fix blending for luminance/intensity surfaces
authorBrian Paul <brianp@vmware.com>
Thu, 15 Sep 2011 17:31:55 +0000 (11:31 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 15 Sep 2011 17:31:55 +0000 (11:31 -0600)
commita7109a31999f78a1184346f423a8df15be18d570
treecc571c922a2c97753fdb6a0d20cdbdc4a07af23d
parentba6f1f2c29c148e33acc9d2b411c19c7c9a9d04f
softpipe: fix blending for luminance/intensity surfaces

If we're drawing to a luminance, luminance/alpha or intensity surface
we have to adjust (rebase) the fragment/quad colors before writing them
to the tile cache.  The tile cache always stores RGBA colors but if
we're caching a L/A surface (for example) we need to be sure that R=G=B
so that subsequent reads from the surface cache appear to return L/A

We previously had a special case for RGB (no alpha) surfaces.  This
change generalizes that for the other base formats.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40408, but sRGB
formats are still failing.  That'll be addressed in a later patch.
src/gallium/drivers/softpipe/sp_quad_blend.c