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'