On 8/4/11 01:59, Krzysztof KosiĆski wrote:
I have updated my Cairo branch today, as a step towards merging it. There is one new regression, namely feImage does not handle aspect ratio. It will be fixed before merging. IIRC, there is a problem with CMS output, the editing controls are not using custom XOR blending, and there are build failures on Windows. Does anyone remember any other bugs?
a) outline view mode
cairo-renderer r9589, OS X 10.5.8 (i386), Apple's GCC 4.2.1, no OpenMP: - cairo 1.10.2, GTK+/X11 - cairo 1.11.2, GTK+/Quartz
Outline view mode uses white to draw the outlines: they are not visible on default backgrounds (white). The color of the outline apparently is not inverted (or xor-composited (?)) when using a dark background, either.
Currently, outline mode is only usable with a solid, darker background.
b) multi-threading / OpenMP
As described earlier [1], OpenMP is not detected by the configure script when building with Apple's GCC 4.2.1 (although the man page states otherwise, and e.g. 'libgomp.a' and the omp header do exist).
Testing a build of the cairo-renderer branch using plain GCC 4.2.4 installed via MacPorts does enable OpenMP (-fopenmp), but when used in rendering, Inkscape randomly hangs (apparently waiting for something to finish(?) - see attached backtrace when interrupting Inkscape after it no longer accepts any input).
The build with GCC 4.2.4 also produced several warnings from the linker ("ld warning: can't find atom for N_GSYM stabs (...)").
I will try with newer GCC versions [2], but so far my earlier tests building inkscape trunk with GCC 4.5 and GCC 4.4 had other serious issues (crashes, or e.g. broken text rendering on canvas).
IMHO with the new renderer, we should get OpenMP working on OS X as well. Any input or help - maybe it just needs adjusted compiler and linker flags (?) - would be appreciated.
~suv
[1] http://article.gmane.org/gmane.comp.graphics.inkscape.devel/34491 [2] currently installed GCC versions (XCode 3.1.4, MacPorts): gcc-4.0 (4.0.1, Apple) gcc-4.2 (4.2.1, Apple) gcc-mp-4.2 (4.2.4, MacPorts) gcc-mp-4.3 (4.3.5, MacPorts) gcc-mp-4.4 (4.4.5, Macports) gcc-mp-4.5 (4.5.2, MacPorts)
Program received signal SIGINT, Interrupt. 0x90d8444e in __semwait_signal () (gdb) bt #0 0x90d8444e in __semwait_signal () #1 0x90daf3e6 in _pthread_cond_wait () #2 0x90daedcd in pthread_cond_wait$UNIX2003 () #3 0x1386589c in gomp_sem_wait () #4 0x13865993 in gomp_barrier_wait_end () #5 0x138659f9 in gomp_barrier_wait () #6 0x1386511d in gomp_team_start () #7 0x138648cf in GOMP_parallel_start () #8 0x0029b25b in Inkscape::Filters::filter2D_FIR<unsigned char, 4u> (dst=0x4 <Address 0x4 out of bounds>, dstr1=<incomplete type>, dstr2=<incomplete type>, src=0x1acd5030 "", sstr1=<incomplete type>, sstr2=<incomplete type>, n1=<incomplete type>, n2=<incomplete type>, kernel=0xbfffdcc0, scr_len=<incomplete type>, num_threads=<incomplete type>) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/gcc42/c++/complex:954 #9 0x0029b44c in Inkscape::Filters::gaussian_pass_FIR (d=<incomplete type>, deviation=<incomplete type>, src=<incomplete type>, dest=<incomplete type>, num_threads=<incomplete type>) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/gcc42/c++/complex:954 #10 0x0029bc80 in Inkscape::Filters::FilterGaussian::render_cairo (this=0x1ac92190, slot=<incomplete type>) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/gcc42/c++/complex:954 #11 0x0029527b in Inkscape::Filters::Filter::render (this=0x1a9262d0, item=0x1a92a1c0, bgct=0x15769594, bgarea=0xbfffe354, graphic=0x15769a68, area=0xbfffe1e4) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/gcc42/c++/ext/new_allocator.h:89 #12 0x00280113 in nr_arena_item_invoke_render (ct=0x15769594, item=0x1a92a1c0, area=0xbfffe354, pb=0x0, flags=0) at display/nr-arena-item.h:73 #13 0x00278d88 in nr_arena_group_render (ct=0x15769594, item=0x1a929700, area=0xbfffe354, pb=0x0, flags=0) at ./display/nr-arena-item.h:73 #14 0x0027fd81 in nr_arena_item_invoke_render (ct=0x157690c0, item=0x1a929700, area=0xbfffe85c, pb=0x0, flags=0) at display/nr-arena-item.h:73 #15 0x00278d88 in nr_arena_group_render (ct=0x157690c0, item=0x1912d900, area=0xbfffe85c, pb=0x0, flags=0) at ./display/nr-arena-item.h:73 #16 0x0027fd81 in nr_arena_item_invoke_render (ct=0x157690c0, item=0x1912d900, area=0xbfffe85c, pb=0x0, flags=0) at display/nr-arena-item.h:73 #17 0x00278d88 in nr_arena_group_render (ct=0x157690c0, item=0x1912dd00, area=0xbfffe85c, pb=0x0, flags=0) at ./display/nr-arena-item.h:73 #18 0x0027fd81 in nr_arena_item_invoke_render (ct=0x157690c0, item=0x1912dd00, area=0xbfffe85c, pb=0x0, flags=0) at display/nr-arena-item.h:73 #19 0x00278d88 in nr_arena_group_render (ct=0x157690c0, item=0x1910c000, area=0xbfffe85c, pb=0x0, flags=0) at ./display/nr-arena-item.h:73 #20 0x0027fd81 in nr_arena_item_invoke_render (ct=0x157690c0, item=0x1910c000, area=0xbfffe85c, pb=0x0, flags=0) at display/nr-arena-item.h:73 #21 0x0025839a in sp_canvas_arena_render (item=0x191bd5b0, buf=0xbfffe9e0) at display/canvas-arena.cpp:64 #22 0x002b2142 in sp_canvas_group_render (item=0x18e5f1c0, buf=0xbfffe9e0) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/boost/optional/optional.hpp:640 #23 0x002b2142 in sp_canvas_group_render (item=0x18e5f130, buf=0xbfffe9e0) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/boost/optional/optional.hpp:640 #24 0x002b0c5a in sp_canvas_paint_rect_internal (setup=0xbfffedf4, this_rect={x0 = -16, y0 = -368, x1 = 704, y1 = -320}) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/boost/optional/optional.hpp:640 #25 0x002b0670 in sp_canvas_paint_rect_internal (setup=0xbfffedf4, this_rect={x0 = -16, y0 = -368, x1 = 704, y1 = -272}) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/boost/optional/optional.hpp:640 #26 0x002b0670 in sp_canvas_paint_rect_internal (setup=0xbfffedf4, this_rect={x0 = -16, y0 = -368, x1 = 704, y1 = -176}) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/boost/optional/optional.hpp:640 #27 0x002b0670 in sp_canvas_paint_rect_internal (setup=0xbfffedf4, this_rect={x0 = -16, y0 = -368, x1 = 704, y1 = 10}) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/boost/optional/optional.hpp:640 #28 0x002b3826 in sp_canvas_paint_rect (canvas=0x191efa48, xx0=-16, yy0=-368, xx1=704, yy1=16) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/boost/optional/optional.hpp:640 #29 0x002b3d04 in do_update (canvas=0x191efa48) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/boost/optional/optional.hpp:640 #30 0x002b61a8 in idle_handler (data=0x191efa48) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/boost/optional/optional.hpp:640 #31 0x15ae671d in g_main_context_dispatch () #32 0x15aea5ab in g_main_context_iterate () #33 0x15aea887 in g_main_loop_run () #34 0x13eaefa1 in gtk_main () #35 0x138c2d4b in Gtk::Main::run () #36 0x000058fa in sp_main_gui (argc=1, argv=0xbffff2d0) at /Volumes/green/mp-inkscape/with-a-long-long-long-directory-name/include/gcc42/c++/bits/basic_string.tcc:146 #37 0x00003e9b in _start () #38 0x00003dc9 in start () (gdb) quit The program is running. Exit anyway? (y or n) y LeWitt:mp-inkscape suv$