performance problems and possible remedies?
by Yale Zhang
Hi. I'm using Inkscape to author a comic and the slow speed for certain
things is very annoying. I'm already have OpenMP turned on and using 4
cores.
1. *large blurs are slow* - I'm an expert with writing SIMD code, so I was
thinking about vectorizing the Gaussian IIR filter with SIMD intrinsics,
even though it's harder than for a FIR. But I noticed there isn't any SIMD
code in Inkscape so does that mean it's something to avoid.
I'm pretty sure no current compiler is smart enough to vectorize it, and
besides, Inkscape is compiled with -O2, meaning -ftree-vectorize isn't on
by default.
2. *when there's a large image (raster based) background - scrolling in a
zoomed region is very slow*
I compiled the latest 0.49 code with GCC profiling and it shows this:
33.98 22.47 22.47 exp2l
21.29 36.55 14.08 log2l
17.57 48.17 11.62 pow
7.12 52.88 4.71 658 0.01 0.01
ink_cairo_surface_srgb_to_linear(_cairo_surface*)
6.72 57.32 4.44 563 0.01 0.01
ink_cairo_surface_linear_to_srgb(_cairo_surface*)
5.51 60.96 3.64 1216 0.00 0.00
Inkscape::Filters::FilterGaussian::~FilterGaussian()
5.23 64.42 3.46 internal_modf
0.59 64.81 0.39 _mcount_private
0.41 65.08 0.27 __fentry__
0.12 65.16 0.08 GC_mark_from
0.09 65.22 0.06 5579 0.00 0.00
Geom::parse_svg_path(char const*, Geom::SVGPathSink&)
0.06 65.26 0.04 35320 0.00 0.00
bounds_exact_transformed(std::vector<Geom::Path,
std::allocator<Geom::Path> > const&, Geom::Affine const&)
0.06 65.30 0.04 8 0.01 0.01
convert_pixbuf_normal_to_argb32(_GdkPixbuf*)
0.05 65.33 0.03 885444 0.00 0.00
std::vector<Geom::Linear, std::allocator<Geom::Linear>
>::_M_fill_insert(__gnu_cxx::__normal_iterator<Geom::Linear*,
std::vector<Geom::Linear, std::allocator<Geom::Linear> > >, unsigned long
long, Geom::Linear const&)
The cost is absolutely dominated by ink_cairo_surface_srgb_to_linear() and
ink_cairo_surface_linear_to_srgb(). My first instinct was to optimize
those 2 functions, but then I thought why are those even being called every
time I scroll through the image?
Why not convert the images up front to linear and stay that way in memory?
If that can't be done, then my optimization approach is:
1. replace ink_cairo_surface_srgb_to_linear() with a simple 3rd degree
polynomial approximation (0.902590573087882 - 0.010238759806148x +
0.002825455367280x^2 + 0.000004414767235x^3) and vectorize with SSE
intrinsics. The approximation was calculated by minimizing the square error
(maxError = 0.313) over the range [10, 255]. For x < 10, it uses simple
scaling.
2. replace ink_surface_linear_to_srgb() with a vectorized implementation
of pow(). Unlike srgb_to_linear(), a low degree polynomial can't be used
due to the curve having larger high order derivatives. An alternative would
be piece wise, low order polynomials.
The main question I have is what degree of accuracy is desired? Certainly,
it doesn't need double precision pow() since the input is only 8 bits! Is
+- 0.5 from the true value (before quantization) OK or do people depend on
getting pixel perfect results?
UJ
6 years, 12 months
Re: [Inkscape-devel] Devlibs 46 too slow
by Mark Titchener
I tried your modified build with an NVidia Quadro 1000M on Windows 7 and it
seemed okay to me.
> Le Jeudi 21 novembre 2013 9h09, Nicolas Dufour <nicoduf@...48...> a ?crit
> :
> > I'm still investigating the issue, and just found out that the computers
> I
> > used to reproduced the bug were all using an Intel GPU. Tests with an
> nvidia
> > GeForce 210 (GT218) show no slowness at all.
>
> Could some Windows users help me? I'd like to confirm the slowness only
> affects Intel graphics cards. Could you test a modified Inkscape binary
> (from ftp://download.tuxfamily.org/inkscape/inkscape-12282-cairo-1.12.8.7z),
> give your graphic card model and tell me if it's slow or not? IMHO it could
> be a blocker for 0.49 on Windows.
>
>
7 years, 7 months
non-Unicode symbol fonts do not work on Windows. Bug 165665. Do we need the flag USE_PANGO_WIN32 ?
by Alvin Penner
ref : https://bugs.launchpad.net/inkscape/+bug/165665
I believe this bug can be fixed by disabling the flag USE_PANGO_WIN32 in
line 19 of src/libnrtype/FontFactory.h. When I do this on Windows XP, I gain
about 35 new fonts. Not all of these new fonts are useable, but the most
interesting ones, such as CommercialPi, Symbol, Technic, Webdings,
Wingdings, MonoType Sorts, TechnicLite are working well, both in Inkscape
and in IE9.
This is a Windows-specific bug which hides symbol fonts, and does not
occur in Gimp 2.6 on Win XP. As far as I can tell, the Gimp source code does
not contain any analogue or equivalent of the flag USE_PANGO_WIN32.
Would there be any objection if I disable this flag, or does it serve a
specific purpose that is essential?
tia
- Alvin Penner
--
View this message in context: http://old.nabble.com/non-Unicode-symbol-fonts-do-not-work-on-Windows.-Bu...
Sent from the Inkscape - Dev mailing list archive at Nabble.com.
8 years, 4 months
Improved gears extension
by Jürgen Weigert
Just saw braingram's rack gear extension coming in. Nice work! Thank you.
But that reminds me that I also have a small contribution to share. Here is
an enhanced version of the gears plugin, please also consider this for
future inclusion
git@...2977...:jnweiger/inkscape-extensions-gears-dev.git
cheers, JW-
9 years, 4 months
Mac OS X Mountain Lion x86_64 packaging of 0.48.4
by Valerio Aimale
Hello,
I am not an official packager, but I was eager to have an updated
version of Inkscape for Mac OS X and I noticed that nobody is packaging
the new version.
I've packaged it for Mountain Lion and x86_64. It should be considered a
beta packaging. I've packaged from version 0.48+devel r12005
You can download it at:
https://rapidshare.com/files/3885726044/Inkscape_MountainLion_x86_64.dmg
The Mac Os X packaging infrastructure in the source tree is a bit
ancient. Things I've noticed:
- configure.ac uses syntax that is not conforming anymore with
autoconf/automake/authohear 1.13. Going forward that should be updated.
- the scripts osx-build.sh os-app.sh needs update for the newest Xcode
versions. they don't work out of the box.
- the dylib base relocation infrastructure needed to be rewritten
- the Platypus-derived ScriptExec executable might not be needed anymore
- in this version, the app bundle executes the sh script directly.
Features:
- The version I packaged runs gtk-2.0+quartz. It does not need
X11/Xquartz anymore to run. This is the direction GIMP has gone to as well.
- It uses the same theme as GIMP. I think it's a good consistency
decision, and it's the theme that looks best on Mtn Lion.
If somebody want to try and report problems, I'd appreciate it
Valerio
9 years, 7 months
Bug Hunt for 0.91
by Bryce Harrington
Welcome to the first bug hunt for the 0.91 release. This hunt focuses
on regression bugs.
Traditionally, we specify a point target for us to reach, and award us
points based on the severity of the bug: 3, 6, 9, or 12 points for low,
medium, high, and critical. This bug hunt's goal is 500 points worth of
bugs from the following list:
http://tinyurl.com/bughunt91a
You'll note a few dozen regressions were already fixed, so we'll count
that as a (207 point) headstart on the effort. Here's a couple more
links to list only the open or closed bugs:
http://tinyurl.com/bughunt91a-open
http://tinyurl.com/bughunt91a-closed
[I'll write a launchpadlib script to calculate the score from the latter
list, unless someone's ambitious and beats me to it!]
We only give points for true bug fixes - not bugs simply closed due to
being dupes, invalid, works-for-me, or whatnot. Once the bug is fixed
in the mainline branch, set its status to Fix Committed, and it'll tally
as a fixed regression.
Bug Hunt Goal: 500 points
Current: 207 points
If you're not a developer, you can still help by seeing if you can
reproduce the bug yourself, and posting your findings.
If you have an idea on how to fix the bug, but don't have the time to do
it yourself, then outlining your thoughts on the bug may help junior
developers pick it up and implement the changes.
If you're an experienced developer, consider posting an invitation to an
IRC bug party for the time period you'll be working, if you're willing
to help pilot junior developers and sponsor their patches.
I will be posting scoring updates a couple times a week until we're
done.
Bryce
9 years, 8 months
Chill for 0.91
by Bryce Harrington
As there have been no objections so far, I'd like to move that we begin
the Chill phase of the release cycle today.
If there are any objections, please raise them ASAP.
Otherwise, we can begin the Regression Bug Hunt starting tomorrow.
Bryce
On Mon, Dec 23, 2013 at 02:16:22PM -0800, Bryce Harrington wrote:
> Any other comments on the plan?
>
> If there's no objections, then I'd like to propose we begin Chill in a
> week, on Dec 28th.
>
> Between now and then would be a good opportunity to focus on bug triage.
> In particular, it would be helpful to get all bugs assigned a priority.
>
> Bryce
>
>
> On Wed, Dec 18, 2013 at 11:21:49PM -0800, Bryce Harrington wrote:
> > Hi all,
> >
> > Josh and I have been discussing plans for the upcoming release; below
> > is what we've come up with so far. This is loosely based on past 0.4x
> > plans. I'll follow up this email with explanations for the major
> > differences. Meanwhile, feedback would be appreciated.
> >
> >
> > # Period Tasks Notes
> > --------------------------------------------------------------------------------
> > 1. Open development.
> > Triage and prioritize bugs report this year
> > Itemize regression bugs found since last release
> >
> > 2. Chill. Development focuses on wrapping up
> > Disable features that aren't finished
> > Identify 'make distcheck' issues
> > Identify any critical OSX/Win32 packaging issues P
> > Identify remaining writing needed for Release Notes.
> > Regressions Bug Hunt: 500 points H
> > Update tutorials and other docs
> >
> > 3. Frost. Experimental Branch is forked B
> > Mainline Branch focuses on stabilization B
> > Only production-ready code committed to Mainline B
> > Post inkscape-0.91-pre0.tar.gz
> > Finalize any major changes to platform packaging P
> > Release Notes should be >90% filled in.
> > Inkscape must pass >90% of 'make distcheck'
> > Start an About Screen contest A
> > General Bug Hunt: 1500 points H
> > Post additional inkscape-0.91-pre*.tar.gz releases
> > Packagers test creating pkgs of the -pre* releases P
> >
> > 4. Feature Freeze. Stable Branch is forked from Mainline B
> > Regular development resumes on Mainline. B
> > Avoid major refactorings on Mainline. B
> > Only bug fixes committed to Stable Branch. B
> > Bug fixes are cherrypicked from Mainline. B
> > Inkscape must pass 'make distcheck'
> > String Freeze No further string changes allowed on Stable Branch. T
> > Finalize tutorials to be shipped with release
> > Finalize other docs included in the release
> > Finalize about screen A
> > Finalize Release Notes except Known Issues
> > Translators work on translations. T
> > Recruit Release Wardens for Hard Freeze
> >
> > 5. Hard freeze. Only Release Wardens can commit to Stable Branch B
> > Cherrypick bug fixes from Mainline to Stable B
> > Complete any late work under advisement of Wardens
> > Focus on release-critical bug fixing.
> > Finalize all extensions
> > Finalize codebase translations T
> > Finalize Known Issues section of Release Notes
> > Finalize packaging scripts
> > Post additional inkscape-0.91-pre*.tar.gz releases
> >
> > 6. Release. Post inkscape-0.91.tar.gz
> > Post packages
> > Post official announcements
> > Plan 0.91.1+ release(s), if needed
> >
> > 7. Open development.
> >
> >
> > ------------------------------------------------------------------------------
> > Rapidly troubleshoot problems before they affect your business. Most IT
> > organizations don't have a clear picture of how application performance
> > affects their revenue. With AppDynamics, you get 100% visibility into your
> > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> > http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
> > _______________________________________________
> > Inkscape-devel mailing list
> > Inkscape-devel(a)lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/inkscape-devel
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
> _______________________________________________
> Inkscape-devel mailing list
> Inkscape-devel(a)lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/inkscape-devel
9 years, 9 months
Re: [Inkscape-devel] Proposal for release plan
by Bryce Harrington
Any other comments on the plan?
If there's no objections, then I'd like to propose we begin Chill in a
week, on Dec 28th.
Between now and then would be a good opportunity to focus on bug triage.
In particular, it would be helpful to get all bugs assigned a priority.
Bryce
On Wed, Dec 18, 2013 at 11:21:49PM -0800, Bryce Harrington wrote:
> Hi all,
>
> Josh and I have been discussing plans for the upcoming release; below
> is what we've come up with so far. This is loosely based on past 0.4x
> plans. I'll follow up this email with explanations for the major
> differences. Meanwhile, feedback would be appreciated.
>
>
> # Period Tasks Notes
> --------------------------------------------------------------------------------
> 1. Open development.
> Triage and prioritize bugs report this year
> Itemize regression bugs found since last release
>
> 2. Chill. Development focuses on wrapping up
> Disable features that aren't finished
> Identify 'make distcheck' issues
> Identify any critical OSX/Win32 packaging issues P
> Identify remaining writing needed for Release Notes.
> Regressions Bug Hunt: 500 points H
> Update tutorials and other docs
>
> 3. Frost. Experimental Branch is forked B
> Mainline Branch focuses on stabilization B
> Only production-ready code committed to Mainline B
> Post inkscape-0.91-pre0.tar.gz
> Finalize any major changes to platform packaging P
> Release Notes should be >90% filled in.
> Inkscape must pass >90% of 'make distcheck'
> Start an About Screen contest A
> General Bug Hunt: 1500 points H
> Post additional inkscape-0.91-pre*.tar.gz releases
> Packagers test creating pkgs of the -pre* releases P
>
> 4. Feature Freeze. Stable Branch is forked from Mainline B
> Regular development resumes on Mainline. B
> Avoid major refactorings on Mainline. B
> Only bug fixes committed to Stable Branch. B
> Bug fixes are cherrypicked from Mainline. B
> Inkscape must pass 'make distcheck'
> String Freeze No further string changes allowed on Stable Branch. T
> Finalize tutorials to be shipped with release
> Finalize other docs included in the release
> Finalize about screen A
> Finalize Release Notes except Known Issues
> Translators work on translations. T
> Recruit Release Wardens for Hard Freeze
>
> 5. Hard freeze. Only Release Wardens can commit to Stable Branch B
> Cherrypick bug fixes from Mainline to Stable B
> Complete any late work under advisement of Wardens
> Focus on release-critical bug fixing.
> Finalize all extensions
> Finalize codebase translations T
> Finalize Known Issues section of Release Notes
> Finalize packaging scripts
> Post additional inkscape-0.91-pre*.tar.gz releases
>
> 6. Release. Post inkscape-0.91.tar.gz
> Post packages
> Post official announcements
> Plan 0.91.1+ release(s), if needed
>
> 7. Open development.
>
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
> _______________________________________________
> Inkscape-devel mailing list
> Inkscape-devel(a)lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/inkscape-devel
9 years, 9 months