Changes in cairo >= 1.12.4 affect Inkscape stable and trunk
Cairo 1.12.4 introduced changes which affect Inkscape stable and trunk. Later releases (1.12.6, 1.12.8) addressed some of them for now, but not all: Outline view mode doesn't display any visible outlines at all [1], even with latest cairo 1.12.8 (released today).
Tests with just released cairo 1.12.8 on OS X 10.7.4 (X11 and Quartz cairo surface backends with Inkscape 0.48.3.1 and Inkscape 0.48+devel r11861) gave me these results:
- not fixed: outline view mode still renders invisible affects current stable 0.48.3.1 and trunk
- fixed (since 1.12.6): invisible auxiliary paths and handles ° path outlines (red/green), node handles (blue) in Pen, Pencil and Node tool ° circle (grey/green) indicating distance to guide path in Calligraphy tool hatch mode ° circle (orange) indicating brush size of Tweak tool (width) ° circle (orange) indicating spray area of Spray tool (width) ° possibly others I missed in my tests affected current stable (0.48.3.1)
- AFAICT fixed (since 1.12.8): rendering artifacts with stroked curves affected trunk [3]
In upstream bug 56099 [2], one of the cairo developers indicates that Inkscape needs to change how certain handles and paths are rendered via cairo:
commit c565bad8901dbe66e1402cdc2418986e96e698e3 Author: Chris Wilson <chris@...2923...> Date: Fri Oct 19 12:22:58 2012 +0100
pen: Relax invisibility criteria from half-tolerance to quarter-tolerance Inkscape is one user who sets geometric tolerance to 1.25 pixels when stroking sub-pixel lines. Whilst we wait for inkscape to set sensible values for their tolerance, we have to allow through the current values in order to prevent the fine strokes from disappearing.
Is there something which can or ought to done on Inkscape's side to help affected users of current Inkscape stable [4] (AFAIK currently Fedora 18, Mageia and ArchLinux, and probably soon other distros which plan to update to latest cairo stable)?
Likely - I don't know any details about how cairo is used in Inkscape - there will be different changes required for the stable release branch (release of 0.48.4 is pending, and held up only by one blocker so far) and current trunk.
V
[1] Bug #1074612 “No display in outline mode” https://bugs.launchpad.net/inkscape/+bug/1074612
[2] Bug 56099 - path rendering problems in 1.12.4 https://bugs.freedesktop.org/show_bug.cgi?id=56099
[3] artifacts with stroked bézier curves http://lists.cairographics.org/archives/cairo/2012-September/023532.html http://lists.cairographics.org/archives/cairo/attachments/20120928/194fcb1c/attachment-0001.png http://dl.dropbox.com/u/65084033/irc/cairo-1.12.4-stroked-paths-rendering-glitches-1.png
[4] user comments https://plus.google.com/106604070261659014786/posts/Bru4nW8wSrh https://plus.google.com/106604070261659014786/posts/3DpwXkBLRwv
On Sun, 2012-11-04 at 18:51 +0100, ~suv wrote:
Cairo 1.12.4 introduced changes which affect Inkscape stable and trunk. Later releases (1.12.6, 1.12.8) addressed some of them for now, but not all: Outline view mode doesn't display any visible outlines at all [1], even with latest cairo 1.12.8 (released today).
Tests with just released cairo 1.12.8 on OS X 10.7.4 (X11 and Quartz cairo surface backends with Inkscape 0.48.3.1 and Inkscape 0.48+devel r11861) gave me these results:
- not fixed: outline view mode still renders invisible affects current stable 0.48.3.1 and trunk
I can confirm the problem still exists in trunk.
- AFAICT fixed (since 1.12.8): rendering artifacts with stroked curves affected trunk [3]
I can confirm that this is fixed. With another bug fix, my cairo arcs (formerly extrapolated) line-join branch now works as expected.
Tav
[1] Bug #1074612 “No display in outline mode” https://bugs.launchpad.net/inkscape/+bug/1074612
[3] artifacts with stroked bézier curves http://lists.cairographics.org/archives/cairo/2012-September/023532.html http://lists.cairographics.org/archives/cairo/attachments/20120928/194fcb1c/attachment-0001.png http://dl.dropbox.com/u/65084033/irc/cairo-1.12.4-stroked-paths-rendering-glitches-1.png
2012/11/4 ~suv <suv-sf@...58...>:
In upstream bug 56099 [2], one of the cairo developers indicates that Inkscape needs to change how certain handles and paths are rendered via cairo:
commit c565bad8901dbe66e1402cdc2418986e96e698e3 Author: Chris Wilson <chris@...2923...> Date: Fri Oct 19 12:22:58 2012 +0100
pen: Relax invisibility criteria from half-tolerance to quarter-tolerance Inkscape is one user who sets geometric tolerance to 1.25 pixels when stroking sub-pixel lines. Whilst we wait for inkscape to set sensible values for their tolerance, we have to allow through the current values in order to prevent the fine strokes from disappearing.
Fixed in stable r9918, trunk r11862. The fix will work as long as the description is accurate, but I haven't tested this.
Regards, Krzysztof
On Tue, 2012-11-06 at 19:37 +0100, Krzysztof Kosiński wrote:
2012/11/4 ~suv <suv-sf@...58...>:
In upstream bug 56099 [2], one of the cairo developers indicates that Inkscape needs to change how certain handles and paths are rendered via cairo:
commit c565bad8901dbe66e1402cdc2418986e96e698e3 Author: Chris Wilson <chris@...2923...> Date: Fri Oct 19 12:22:58 2012 +0100
pen: Relax invisibility criteria from half-tolerance to quarter-tolerance Inkscape is one user who sets geometric tolerance to 1.25 pixels when stroking sub-pixel lines. Whilst we wait for inkscape to set sensible values for their tolerance, we have to allow through the current values in order to prevent the fine strokes from disappearing.
Fixed in stable r9918, trunk r11862. The fix will work as long as the description is accurate, but I haven't tested this.
Tested with Cairo trunk and Inkscape trunk. The fix works.
Tav
On 06/11/2012 19:37, Krzysztof Kosiński wrote:
2012/11/4 ~suv <suv-sf@...58...>:
In upstream bug 56099 [2], one of the cairo developers indicates that Inkscape needs to change how certain handles and paths are rendered via cairo:
commit c565bad8901dbe66e1402cdc2418986e96e698e3 Author: Chris Wilson <chris@...2923...> Date: Fri Oct 19 12:22:58 2012 +0100
pen: Relax invisibility criteria from half-tolerance to quarter-tolerance Inkscape is one user who sets geometric tolerance to 1.25 pixels when stroking sub-pixel lines. Whilst we wait for inkscape to set sensible values for their tolerance, we have to allow through the current values in order to prevent the fine strokes from disappearing.
Fixed in stable r9918, trunk r11862. The fix will work as long as the description is accurate, but I haven't tested this.
Fix confirmed on OS X 10.7.4 with current cairo 1.12.8 and Inkscape 0.48.x r9918 (Gtk+/X11) as well as 0.48+devel r11862 (Gtk+/X11, Gtk+/Quartz).
Hopefully cairo won't go back to the originally intended stricter criteria (as in 1.12.4) any time soon (or without prior notice) - if the tests I described in the upstream cairo bug report are correct, it would again break Inkscape's outline view mode.
V
[2] Bug 56099 - path rendering problems in 1.12.4 https://bugs.freedesktop.org/show_bug.cgi?id=56099
participants (3)
-
Krzysztof Kosiński
-
Tavmjong Bah
-
~suv