Re: [cairo] help building cairo on windows

Siarhei Siamashka <[email protected]>
Newsgroups gmane.comp.graphics.pixman,gmane.comp.lib.cairo
Message-ID <20120911234438.3fd220c8@i7>
On Tue, 11 Sep 2012 22:25:15 +0200
Andrea Canciani <[email protected]> wrote:

> 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.

Does MSVC respect 'force_inline' and actually inline all of these
functions ('to_uint64', 'store8888', ...)?

-- 
Best regards,
Siarhei Siamashka
_______________________________________________
Pixman mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pixman
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.