[cairo] [Pixman] help building cairo on windows

Andrea Canciani ranma42 at gmail.com
Tue Sep 11 13:25:15 PDT 2012


On Tue, Sep 11, 2012 at 7:34 PM, Søren Sandmann <sandmann at cs.au.dk> wrote:
> Andrea Canciani <ranma42 at gmail.com> writes:
>
>> This reminds me that I have some patches to improve building pixman on win32:
>> http://cgit.freedesktop.org/~ranma42/pixman/commit/?h=wip/simpleops-to-master
>>
>> Soren, is it ok if I push the attached patches?
>
> No objections from me if the test suite still passes with
> PIXMAN_DISABLE=sse2 set.

On MacOS X the testsuite shows no regression with that variable in the env.
On win32, pixman did not compile without the first of those patches.
After it, the testsuite fails with:

$ PIXMAN_DISABLE=sse2 ./scaling-test.exe
Assertion failed: frcd_canary_variable1 == frcd_volatile_constant1,
file scaling-test.c, line 356
pixman: Disabled sse2 implementation

The failing testcase is:
$ PIXMAN_DISABLE=sse2 ./scaling-test.exe 3348
Assertion failed: frcd_canary_variable1 == frcd_volatile_constant1,
file scaling-test.c, line 356
src_fmt=20028888, dst_fmt=20028888
op=3, scale_x=27881, scale_y=-65000, repeat=0
translate_x=55344, translate_y=56484
src_width=11, src_height=8, dst_width=24, dst_height=7
src_x=0, src_y=4, dst_x=4, dst_y=3
w=20, h=2
destination clip box: [16,6-20,6]
destination clip box: [3,2-18,6]
pixman: Disabled sse2 implementation
...

This seems to be consistent with the compiler warnings:
pixman-mmx.c
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-mmx.c(286) :
warning C4799: function 'to_uint64' has no EMMS instruction
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-mmx.c(469) :
warning C4799: function 'store8888' has no EMMS instruction
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-mmx.c(480) :
warning C4799: function 'is_equal' has no EMMS instruction
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-mmx.c(491) :
warning C4799: function 'is_opaque' has no EMMS instruction
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-mmx.c(497) :
warning C4799: function 'is_zero' has no EMMS instruction
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-mmx.c(565) :
warning C4799: function 'expand_4xpacked565' has no EMMS instruction
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-mmx.c(591) :
warning C4799: function 'expand_4x565' has no EMMS instruction
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-mmx.c(3760) :
warning C4799: function
'fast_composite_scaled_bilinear_mmx_8888_8_8888_pad_OVER' has no EMMS
instruction
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-mmx.c(3764) :
warning C4799: function
'fast_composite_scaled_bilinear_mmx_8888_8_8888_none_OVER' has no EMMS
instruction

I was unable to find out why MSVC thinks that
fast_composite_scaled_bilinear_mmx_8888_8_8888_{pad,none}_OVER are
missing an EMMS instruction, but cover/normal are ok.

Andrea


More information about the cairo mailing list