[PATCH] exa: Unset and restore per alpha in exaTryMagicTwoPassCompositeHelper

Michel Dänzer michel at daenzer.net
Mon Oct 19 05:58:22 PDT 2009

On Fri, 2009-10-16 at 00:29 +0100, jakob at vmware.com wrote: 
> From: Zack Rusin <zackr at vmware.com>
> This fixes the component alpha fallback in exa. I'm not sure which branches
> this should go into. Also before committing this patch make sure that
> we get a Tested-by by somebody with a radeon card as this turns on new and
> wonderful paths not tested in the drivers.

This shouldn't make any difference for sub-pixel AA text with the radeon
driver, as it doesn't simply check for pMask->componentAlpha but:

	if (pMaskPicture->componentAlpha) {
	    /* Check if it's component alpha that relies on a source alpha and
	     * on the source value.  We can only get one of those into the
	     * single source value that we get to blend with.
	    if (RadeonBlendOp[op].src_alpha &&
		(RadeonBlendOp[op].blend_cntl & RADEON_SRC_BLEND_MASK) !=
		RADEON_FALLBACK(("Component alpha not supported with source "
				 "alpha and source value blending.\n"));

I'm not sure offhand if the proposed change is necessary or even
sensible given this, or if the Gallium Xorg state tracker shouldn't just
use similar checks, and I may not find the time to build a firmer
opinion before I'm back from vacation next month.

Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer

More information about the xorg-devel mailing list