[Pixman] [PATCH 0/3] Test negative strides

Siarhei Siamashka siarhei.siamashka at gmail.com
Fri Sep 27 15:57:42 PDT 2013


On Sat, 28 Sep 2013 00:42:12 +0200
sandmann at cs.au.dk (Søren Sandmann) wrote:

> Siarhei Siamashka <siarhei.siamashka at gmail.com> writes:
> 
> >> Somehow I missed the "case 16:" case. New patch below; also available in
> >> the negative-strides branch of my repository on fd.o.
> >
> > Thanks, this works. I have just independently found the same problem,
> > but was running some additional tests.
> 
> Thanks for testing; I'll push the patch soon.

Good. This should resolve "make check" problems on all platforms.
Except for the reported VMX/Altivec issue on POWER7.

> > By the way, print_image() does not behave in the same way on big and
> > little endian systems, which makes debugging a little bit more
> > difficult.
> 
> On blitters-test, print_image() ends up being called before
> endian-swapping, so it will produce different output on big vs little
> endian. But in the other tests, it looks like the call is after the
> swapping.
> 
> If the problem is just blitters-test, then it's easy enough to fix; the
> patch below should do it. I guess it might even make sense to add a
> "verbose" argument to compute_crc32_for_image() and move the print code
> there so that the order isn't accidentally reversed in new code.

I was just considering to update print_image() function to actually
take pixel color depth into account. And print something like this
for a8r8g8b8 format:

    01234567 89ABCDEF

Instead of "67 45 23 01 EF CD AB 89" on little endian systems
and "01 23 45 67 89 AB CD EF" on big endian systems.

But there are still 1bpp and 4bpp formats, which either would be
still printed differently on big and little endian systems.
Or the printed dump would be misleading, because it does not match
the actual data in memory produced by pixman_image_composite().

-- 
Best regards,
Siarhei Siamashka


More information about the Pixman mailing list