[cairo] [PATCH] Image scaling regression test script and 'fbCompositeSrcScaleNearest' bugfixes

Siarhei Siamashka siarhei.siamashka at nokia.com
Thu Apr 2 05:01:29 PDT 2009

On Thursday 02 April 2009 02:25:51 ext Jeff Muizelaar wrote:
> > > The alpha change I don't understand. Note this line:
> > >
> > >          && pSrc->bits.format == pDst->bits.format
> > >
> > > down in the if statement; fbCompositeSrcScaleNearest() only gets
> > > called when source and destination have the same format, so copying
> > > pixels directly between them should be correct, and there should be no
> > > need for masking in 0xff in the alpha channel.
> >
> > This is a bit of gray area. This change is needed to provide exactly the
> > same rendering results as the generic path. Generic path always sets the
> > (unneeded) alpha bits to 0xFF if the source picture had them set to
> > something different. But if the values of these bits are actually
> > supposed to be "undefined", then the test program needs to be modified
> > not to take them into account when checking correctness of rendering.
> The alpha bits are defined as 'undefined' with x8r8g8b8 so this change
> is unneeed. See fbCompositeSrc_8888xx888 as an example.

The sources of pixman are somewhat inconsistent regarding the handling of this
unused x8 part, that's why I can't trust them ;) Also see 'fbStore_x8r8g8b8'
function as another example. I'm fine with either way, but just wanted to get
a confirmation about what behavior is considered correct. This minor
inconsistency can be easily spotted by automated tests and affects their
pass/fail verdict, that's why a definite clarification would be nice.

Another question. Can 'undefined' state of this extra byte in x8r8g8b8
theoretically result in some problems for XRender extension, cairo or any
other pixman users?

Best regards,
Siarhei Siamashka

More information about the cairo mailing list