Re: [cairo] help building cairo on windows

Andrea Canciani <[email protected]>
Newsgroups gmane.comp.graphics.pixman,gmane.comp.lib.cairo
Message-ID <CAN_5=BAPGtWjhwvppqsUbKY=D6y3SV18uoDT11njOHpHHNUOSA@mail.gmail.com>
On Tue, Sep 11, 2012 at 7:34 PM, Søren Sandmann <[email protected]> wrote:
> Andrea Canciani <[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.