[cairo] help building cairo on windows
Dimiter 'malkia' Stanev
malkia at gmail.com
Tue Sep 11 16:49:49 PDT 2012
It was not respecting them in my case, and I'm forcing -GL (-LTCG) -
Global-link time optimization. If I disable MMX (MMX=off), then i don't
get the warnings.
(This was with WDK 7.1 (7600) - compiler is close version to VS2008).
On 9/11/2012 1:44 PM, Siarhei Siamashka 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', ...)?
>
More information about the cairo
mailing list