[cairo] [PATCH v3 0/3] test: Add test for image downscaling

Uli Schlachter psychon at znc.in
Wed Sep 11 05:15:52 PDT 2013


Hi (and sorry for being annoying),

On 10.09.2013 19:06, Bryce W. Harrington wrote:
> These are tests for the recently integrated downscaling support.  This
> patchset includes some simple tests for three scaling factors, for each
> of the filter options.

I am not sure how this happened, but you sent out the wrong patches. The ones
you sent are already in master...

> This patchset is also posted to the 'downscaling' branch in my fdo git
> repo:
> 
>   http://cgit.freedesktop.org/~bryce/cairo/
[...]

...thus I switched to pulling from this branch.

Then I took another look at this and sadly I found another thing to complain
about. Right now, the results of these new tests look like this (the sed just
avoids line-wrapping in this mail):

$ md5sum output/pixman-downscale-*95.image.* | sort | sed -e 's/........... / /'
486189495f2ed62f80ea2  output/pixman-downscale-best-95.image.argb32.out.png
486189495f2ed62f80ea2  output/pixman-downscale-bilinear-95.image.argb32.out.png
486189495f2ed62f80ea2  output/pixman-downscale-fast-95.image.argb32.out.png
486189495f2ed62f80ea2  output/pixman-downscale-good-95.image.argb32.out.png
486189495f2ed62f80ea2  output/pixman-downscale-nearest-95.image.argb32.out.png
9521522a7bcda06976efc  output/pixman-downscale-best-95.image.rgb24.out.png
9521522a7bcda06976efc  output/pixman-downscale-bilinear-95.image.rgb24.out.png
9521522a7bcda06976efc  output/pixman-downscale-fast-95.image.rgb24.out.png
9521522a7bcda06976efc  output/pixman-downscale-good-95.image.rgb24.out.png
9521522a7bcda06976efc  output/pixman-downscale-nearest-95.image.rgb24.out.png

That's not a lot of different results.

Looking at the code, I noticed this:

(test/pixman-downscale.c, line 56ff)
>     cairo_save (cr);
>     cairo_pattern_set_filter (cairo_get_source (cr), filter);
>     cairo_scale (cr, scale, scale);
>     cairo_set_source_surface (cr, image, 0, 0);
>     cairo_paint (cr);
>     cairo_restore (cr);

You first set the filter on the source and then call cairo_set_source_surface(),
installing a new source. If I move the call to cairo_pattern_set_filter() after
the cairo_set_source_surface() call, the resulting PNGs for "fast" and "nearest"
change a bit:

$ md5sum output/pixman-downscale-*95.image.* | sort | sed -e 's/........... / /'
486189495f2ed62f80ea2  output/pixman-downscale-best-95.image.argb32.out.png
486189495f2ed62f80ea2  output/pixman-downscale-bilinear-95.image.argb32.out.png
486189495f2ed62f80ea2  output/pixman-downscale-good-95.image.argb32.out.png
9521522a7bcda06976efc  output/pixman-downscale-best-95.image.rgb24.out.png
9521522a7bcda06976efc  output/pixman-downscale-bilinear-95.image.rgb24.out.png
9521522a7bcda06976efc  output/pixman-downscale-good-95.image.rgb24.out.png
d5f0ec52d41f03523c0b1  output/pixman-downscale-fast-95.image.argb32.out.png
d5f0ec52d41f03523c0b1  output/pixman-downscale-fast-95.image.rgb24.out.png
d5f0ec52d41f03523c0b1  output/pixman-downscale-nearest-95.image.argb32.out.png
d5f0ec52d41f03523c0b1  output/pixman-downscale-nearest-95.image.rgb24.out.png

Could you fix the test? Thanks!
(And feel free to ping me (psychon) on IRC when you have a new branch up, I
think the mailing list won't care much and I am stuck with having to merge this
anyway)

Cheers,
Uli

P.S.: Sadly it doesn't look like this fixes any test failures.
-- 
A normal person is just someone you don't know well enough yet.
 - Nettie Wiebe


More information about the cairo mailing list