[cairo] [Pixman] help building cairo on windows

Andrea Canciani ranma42 at gmail.com
Tue Sep 11 14:45:47 PDT 2012


On Tue, Sep 11, 2012 at 10:44 PM, Siarhei Siamashka
<siarhei.siamashka at gmail.com> wrote:
> On Tue, 11 Sep 2012 22:25:15 +0200
> Andrea Canciani <ranma42 at gmail.com> wrote:
>
>> 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.
>
> Does MSVC respect 'force_inline' and actually inline all of these
> functions ('to_uint64', 'store8888', ...)?

The compiler does not report inline warnings in pixman-mmx.c, so I
would expect that it respects force_inline.
I'm attaching the build log, in case it is of any help.

>
> --
> Best regards,
> Siarhei Siamashka
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 14951 bytes
Desc: not available
URL: <http://lists.cairographics.org/archives/cairo/attachments/20120911/01db7144/attachment-0001.obj>


More information about the cairo mailing list