Re: [Pixman] help building cairo on windows

Andrea Canciani <[email protected]>
Newsgroups gmane.comp.lib.cairo,gmane.comp.graphics.pixman
Message-ID <CAN_5=BBtkj7tz=TOhfm-fE-eYD3v0RVZdqYxO0K8rFxWCzP-Nw@mail.gmail.com>
On Tue, Sep 11, 2012 at 10:44 PM, Siarhei Siamashka
<[email protected]> wrote:
> 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', ...)?

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

-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
build.log (application/octet-stream, 14.6 KB)
make[1]: Entering directory `/home/ranma42/Code/fdo/pixman/pixman'
Using default RELEASE configuration... (use CFG=release or CFG=debug)
Setting MMX flag to default value 'on'... (use MMX=on or MMX=off)
Setting SSE2 flag to default value 'on'... (use SSE2=on or SSE2=off)
perl make-combine.pl 8 < pixman-combine.h.template > pixman-combine32.h || (rm -f pixman-combine32.h; exit 1)
perl make-combine.pl 16 < pixman-combine.h.template > pixman-combine64.h || (rm -f pixman-combine64.h; exit 1)
pixman.c
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman.c(220) : warning C4710: 'clip_general_image' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman.c(286) : warning C4710: 'clip_general_image' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman.c(296) : warning C4710: 'clip_source_image' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman.c(303) : warning C4710: 'clip_source_image' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman.c(311) : warning C4710: 'clip_source_image' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman.c(318) : warning C4710: 'clip_source_image' : function not inlined
pixman-access.c
pixman-access-accessors.c
pixman-bits-image.c
perl make-combine.pl 8 < pixman-combine.c.template > pixman-combine32.c || (rm -f pixman-combine32.c; exit 1)
pixman-combine32.c
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(1080) : warning C4710: 'blend_hsl_hue' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(1100) : warning C4710: 'blend_hsl_saturation' : function not inlined
perl make-combine.pl 16 < pixman-combine.c.template > pixman-combine64.c || (rm -f pixman-combine64.c; exit 1)
pixman-combine64.c
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(596) : warning C4710: 'blend_overlay' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(596) : warning C4710: 'blend_overlay' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(596) : warning C4710: 'blend_overlay' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(596) : warning C4710: 'blend_overlay' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(596) : warning C4710: 'blend_overlay' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(596) : warning C4710: 'blend_overlay' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(654) : warning C4710: 'blend_color_dodge' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(654) : warning C4710: 'blend_color_dodge' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(654) : warning C4710: 'blend_color_dodge' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(654) : warning C4710: 'blend_color_dodge' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(654) : warning C4710: 'blend_color_dodge' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(654) : warning C4710: 'blend_color_dodge' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(680) : warning C4710: 'blend_color_burn' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(680) : warning C4710: 'blend_color_burn' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(680) : warning C4710: 'blend_color_burn' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(680) : warning C4710: 'blend_color_burn' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(680) : warning C4710: 'blend_color_burn' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(680) : warning C4710: 'blend_color_burn' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(699) : warning C4710: 'blend_hard_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(699) : warning C4710: 'blend_hard_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(699) : warning C4710: 'blend_hard_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(699) : warning C4710: 'blend_hard_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(699) : warning C4710: 'blend_hard_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(699) : warning C4710: 'blend_hard_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(746) : warning C4710: 'blend_soft_light' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(764) : warning C4710: 'blend_difference' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(764) : warning C4710: 'blend_difference' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(764) : warning C4710: 'blend_difference' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(764) : warning C4710: 'blend_difference' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(764) : warning C4710: 'blend_difference' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(764) : warning C4710: 'blend_difference' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(1080) : warning C4710: 'blend_hsl_hue' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(1100) : warning C4710: 'blend_hsl_saturation' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(1119) : warning C4710: 'blend_hsl_color' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-combine.c.template(1138) : warning C4710: 'blend_hsl_luminosity' : function not inlined
pixman-conical-gradient.c
pixman-x86.c
pixman-mips.c
pixman-arm.c
pixman-ppc.c
pixman-edge.c
pixman-edge-accessors.c
pixman-fast-path.c
pixman-glyph.c
pixman-general.c
pixman-gradient-walker.c
pixman-image.c
pixman-implementation.c
pixman-linear-gradient.c
pixman-matrix.c
pixman-noop.c
pixman-radial-gradient.c
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-radial-gradient.c(315) : warning C4710: 'dot' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-radial-gradient.c(321) : warning C4710: 'dot' : function not inlined
pixman-region16.c
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(895) : warning C4710: 'pixman_region_append_non_o' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(897) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(913) : warning C4710: 'pixman_region_append_non_o' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(916) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(944) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(977) : warning C4710: 'pixman_region_append_non_o' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(982) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(996) : warning C4710: 'pixman_region_append_non_o' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(1001) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(1707) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(2707) : warning C4710: 'bitmap_addrect' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(2741) : warning C4710: 'bitmap_addrect' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(2755) : warning C4710: 'bitmap_addrect' : function not inlined
pixman-region32.c
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(895) : warning C4710: 'pixman_region_append_non_o' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(897) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(913) : warning C4710: 'pixman_region_append_non_o' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(916) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(944) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(977) : warning C4710: 'pixman_region_append_non_o' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(982) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(996) : warning C4710: 'pixman_region_append_non_o' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(1001) : warning C4710: 'pixman_coalesce' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(2707) : warning C4710: 'bitmap_addrect' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(2741) : warning C4710: 'bitmap_addrect' : function not inlined
c:\cygwin\home\ranma42\code\fdo\pixman\pixman\pixman-region.c(2755) : warning C4710: 'bitmap_addrect' : function not inlined
pixman-solid-fill.c
perl make-srgb.pl > pixman-srgb.c || (rm -f pixman-srgb.c; exit 1)
pixman-srgb.c
pixman-timer.c
pixman-trap.c
pixman-utils.c
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
pixman-sse2.c
make[1]: Leaving directory `/home/ranma42/Code/fdo/pixman/pixman'
make[1]: Entering directory `/home/ranma42/Code/fdo/pixman/test'
make[2]: Entering directory `/home/ranma42/Code/fdo/pixman/pixman'
Using default RELEASE configuration... (use CFG=release or CFG=debug)
Setting MMX flag to default value 'on'... (use MMX=on or MMX=off)
Setting SSE2 flag to default value 'on'... (use SSE2=on or SSE2=off)
make[2]: Leaving directory `/home/ranma42/Code/fdo/pixman/pixman'
Using default RELEASE configuration... (use CFG=release or CFG=debug)
utils.c
a1-trap-test.c
pdf-op-test.c
region-test.c
region-translate-test.c
fetch-test.c
oob-test.c
trap-crasher.c
alpha-loop.c
scaling-crash-test.c
scaling-helpers-test.c
gradient-crash-test.c
region-contains-test.c
alphamap.c
stress-test.c
composite-traps-test.c
blitters-test.c
glyph-test.c
scaling-test.c
affine-test.c
composite.c
lowlevel-blt-bench.c
rm release/pdf-op-test.obj release/composite.obj release/scaling-test.obj release/fetch-test.obj release/oob-test.obj release/composite-traps-test.obj release/region-translate-test.obj release/gradient-crash-test.obj release/alphamap.obj release/region-contains-test.obj release/blitters-test.obj release/alpha-loop.obj release/scaling-helpers-test.obj release/scaling-crash-test.obj release/glyph-test.obj release/trap-crasher.obj release/a1-trap-test.obj release/stress-test.obj release/region-test.obj release/affine-test.obj release/lowlevel-blt-bench.obj
make[1]: Leaving directory `/home/ranma42/Code/fdo/pixman/test'
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.