Future plans for speeding up Inkscape?
I was wondering if anyone was planning on mods to speed up inkscape's interface and 3D ops? I.e. where it "feels" like it could really benefit would be use of 3D hardware acceleration in doing some of it's on-screen rotations and movements.
Other areas with more 'niche' or smaller payoff would be using CUDA-based highly parallel processing (I hear that CUDA libs are good at scaling many points in parallel), followed by multiple CPU cores, and use of 64-bit instructions.
I think the most bang for the buck and most general would come from using 3D HW accel and moving to the extra memory provided by 64-bit. I know that running out of memory is where Adobe Illus. quickly fails on larger vector drawings, especially in the undo/redo system.
It's amazing what Inkscape can do and how easy it is to do thing when it comes to vector stuff, but my version (.47) doesn't seem real stable after I've been running it for a while. All of my long edit sessions in _playing_ with advanced features have ended by it crashing.
I wasn't trying to do anything in particular so I don't remember the workflow I did each time, but it was usually after it had been up a while. Only once did I actually get to a point of saving an output w/o it crashing. I'm a complete novice when it comes to computer art/SVG art, so I'd sure I was doing something that was 'unreasonable'... :-)
I didn't try to report the bug at the time as I'm sure the developers have their plate full with other problems and since I'm not real familiar with correct operation, I didn't want to be told that I wasn't using the product 'the right way' and by being a beginner, the crashes were due to me trying to do things that I should have done differently (though I tend to believe programs shouldn't crash in such situations, but there could be workarounds that would be known if I was more adept with the program).
I can try to report bugs if I'm not made to feel worthless for reporting them if I don't also include fixes for them...like I have got on some projects...(oh the joys of open source projects :-) ).
Linda
I experience speed problems when working with many nodes. I used to do highly detailed/complex drawings in Illustrator and when I tried to do something similar in Inkscape or open up those original files it'd take a few minutes to open and then moving objects was like waiting for paint to dry! I've only recently been able to do detailed portraits like this http://www.hellocatfood.com/2009/10/06/family-portrait/ but that was by altering my workflow, which isn't really an idea solution.
Any work you can get done on this is much appreciated.
Ant
2010/1/4 Linda Walsh <inkscape@...2679...>:
I was wondering if anyone was planning on mods to speed up inkscape's interface and 3D ops? I.e. where it "feels" like it could really benefit would be use of 3D hardware acceleration in doing some of it's on-screen rotations and movements.
Other areas with more 'niche' or smaller payoff would be using CUDA-based highly parallel processing (I hear that CUDA libs are good at scaling many points in parallel), followed by multiple CPU cores, and use of 64-bit instructions.
I think the most bang for the buck and most general would come from using 3D HW accel and moving to the extra memory provided by 64-bit. I know that running out of memory is where Adobe Illus. quickly fails on larger vector drawings, especially in the undo/redo system.
It's amazing what Inkscape can do and how easy it is to do thing when it comes to vector stuff, but my version (.47) doesn't seem real stable after I've been running it for a while. All of my long edit sessions in _playing_ with advanced features have ended by it crashing.
I wasn't trying to do anything in particular so I don't remember the workflow I did each time, but it was usually after it had been up a while. Only once did I actually get to a point of saving an output w/o it crashing. I'm a complete novice when it comes to computer art/SVG art, so I'd sure I was doing something that was 'unreasonable'... :-)
I didn't try to report the bug at the time as I'm sure the developers have their plate full with other problems and since I'm not real familiar with correct operation, I didn't want to be told that I wasn't using the product 'the right way' and by being a beginner, the crashes were due to me trying to do things that I should have done differently (though I tend to believe programs shouldn't crash in such situations, but there could be workarounds that would be known if I was more adept with the program).
I can try to report bugs if I'm not made to feel worthless for reporting them if I don't also include fixes for them...like I have got on some projects...(oh the joys of open source projects :-) ).
Linda
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Inkscape-user mailing list Inkscape-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-user
I think the most bang for the buck and most general would come from using 3D HW accel and moving to the extra memory provided by 64-bit. I know that running out of memory is where Adobe Illus. quickly fails on larger vector drawings, especially in the undo/redo system.
Honestly, It is hard to find people who are Interested and have the skills and time to implement it. We are just waiting for the stars to align and the right contributor(s) to show up.
It's amazing what Inkscape can do and how easy it is to do thing when it comes to vector stuff, but my version (.47) doesn't seem real stable after I've been running it for a while. All of my long edit sessions in _playing_ with advanced features have ended by it crashing.
I wasn't trying to do anything in particular so I don't remember the workflow I did each time, but it was usually after it had been up a while. Only once did I actually get to a point of saving an output w/o it crashing. I'm a complete novice when it comes to computer art/SVG art, so I'd sure I was doing something that was 'unreasonable'... :-)
'unreasonable' behavior is the kind that finds bugs the fastest, and provides us with new use cases. Please report your bugs .
http://www.inkscape.org/report_bugs.php?lang=en
I didn't try to report the bug at the time as I'm sure the developers have their plate full with other problems and since I'm not real familiar with correct operation, I didn't want to be told that I wasn't using the product 'the right way' and by being a beginner, the crashes were due to me trying to do things that I should have done differently (though I tend to believe programs shouldn't crash in such situations, but there could be workarounds that would be known if I was more adept with the program).
I recommend enabling the auto-save feature in Preference it has saved me a few times.
I can try to report bugs if I'm not made to feel worthless for reporting them if I don't also include fixes for them...like I have got on some projects...(oh the joys of open source projects
We want and need all the feedback you can give us for Inkscape. If you have issue with any inkscape contributor making you feel worthless for trying to be helpful please let us know, here or on the Devel ML. Appropriate action will be taken.
Joshua L. Blocher verbalshadow
Hello,
I have been lurking in this mailing list for a while and commented little, but the subject of performance peeked my interest. I've done some research into 2D hardware acceleration, both in implementing my own vector rasterizers using 3D hardware and shader programs, and through 3rd party 2D/3D apis (some of which use 3D hardware as well).
My conclusion is that 3D hardware can indeed greatly improve 2D rendering performance. I'd really like to see these great speed improvements pushed into a project like inkscape someday, but I am generally not an open source developer (I'm happily stuck in the world of Delphi programming).
My recommendations would be the following:
1. Look into the simple optimization of using shader programs to generate inkscapes polygon fills, especially when they involve any kind of gradients. I have written all the cross platform glsl shaders to handle any conceivable fill type including linear, radial, and cone with reflect, repeat, and clamp end options. I can donate that code as a starting point if anyone would like to take a look at it.
2. Get the cario guys interested in rolling hardware support into the cairo api. I've talked with them about a hardware openvg backend before. Maybe someone well respected from the inkscape can motivate them to get moving in that direction.
3. Take a look into openvg. I believe Trolltech has done some work on implementing that api in Qt. I used the Amanith openvg render and it works okay in opengl mode. That's another thing to look into.
4. And finally, someone might want to check out the evil Microsoft Direct2D api. I know it's locked into Windows, but it sure should take care of everything you'd ever need, and be blazing fast too boot.
I'll leave you with some screenshots of my glsl fill shaders in action:
http://imagebot.org/snapshops/colorful-radial-gradient-shader.jpg http://imagebot.org/snapshops/blend-gradients.jpg http://imagebot.org/snapshops/linear-gradient-reflect-brush-shader.jpg http://imagebot.org/snapshops/radial-gradient-reflect-brush-shader.jpg
My conclusion is that 3D hardware can indeed greatly improve 2D rendering performance. I'd really like to see these great speed improvements pushed into a project like inkscape someday, but I am generally not an open source developer (I'm happily stuck in the world of Delphi programming).
Your more then welcome to become an Inkscape contributor. We have a pretty low bar for coders two accepted patches get you BZR commit rights. They don't have to be world changing patches either mine weren't. If that is not what you are interested in or have the time for that is fine.
My knowledge of this area is limited so any other Developer feel free to speak up.
My recommendations would be the following:
- Look into the simple optimization of using shader programs to
generate inkscapes polygon fills, especially when they involve any kind of gradients. I have written all the cross platform glsl shaders to handle any conceivable fill type including linear, radial, and cone with reflect, repeat, and clamp end options. I can donate that code as a starting point if anyone would like to take a look at it.
Sure that is a good start. Small fits and start is how we finally got a OSX port and how the OSX Aqua port is currently going. People working out a little bit at a time until in all worked.
- Get the cario guys interested in rolling hardware support into the
cairo api. I've talked with them about a hardware openvg backend before. Maybe someone well respected from the inkscape can motivate them to get moving in that direction.
We would need to finish the move to Cairo as our render, for this to be effective. That is planned but no one is active working on the renderer right now.
- Take a look into openvg. I believe Trolltech has done some work on
implementing that api in Qt. I used the Amanith openvg render and it works okay in opengl mode. That's another thing to look into.
Unlikely that we will start using the QT toolkit, but it is a great toolkit.
- And finally, someone might want to check out the evil Microsoft
Direct2D api. I know it's locked into Windows, but it sure should take care of everything you'd ever need, and be blazing fast too boot.
This is even less likely IMO than a move to QT, as it is not cross platform, currently maintaining the windows port is hard enough as we have only a handful of active windows developers.
Joshua L. Blocher verbalshadow
participants (4)
-
Anthony Walter
-
Antonio Roberts
-
Joshua L. Blocher
-
Linda Walsh