This sounds amazing.
I spent some time about eight months ago trying to figure out the primary bottleneck with the rather slow gaussian blur filter, thinking it just needed some box-blur optimisations link described in http://blog.ivank.net/fastest-gaussian-blur.html. But turns out the IIR version already takes care of performance at that level.
At which point I noticed that the blur filter was being called multiple times (and more as I increased zoom level) on what I thought should be a single pass. At that point, the code got a bit beyond what I had time to figure out, but I believe I was running into the tile rendering Tav describes. My naive attempts at eliminating it just made everything look awful, so I gave up.
Anyway, what I did learn was (from memory): the blur algorithm itself is *fast*, at least on my (not particularly spectacular) machine. There's nothing particularly wrong with it, and while any optimisations with it might help, the real problem is that it's being run so many times. The same algorithm, run a single time on my 1080p screen, would feel snappy.
So I'm excited to see some experimenting done on this score, and I'd love it if that tile-size setting could remain available. I'm keen to test it, but I don't think I'll get a chance to build the source in the near future.
Will I be able to try this in a nightly build from somewhere (Ubuntu/Elementary OS)?
Thanks, Tav.
- Bryan
On 31 March 2017 at 08:33, Tavmjong Bah <tavmjong@...8...> wrote:
Hi,
It's been known for a while that rendering when zooming in on an area with filters is slow. This is due to Inkscape breaking the canvas into tiles and rendering each tile separately. Filter effects are recalculated for each tile that they touch. A typical canvas for maximized Inkscape window on a 1080p monitor is broken into about 25 tiles. If you are zoomed in so that the filter extends over the entire visible canvas, you are recalculating the filter effect 25 times.
I've added a preference under the "Rendering" tab to change the relative tile size (Rendering tile multiplier). Please play with changing the value for your most complex drawings. I am most interested in cases where a large multiplier has a negative impact. If there are no cases with a negative impact, I'll set the default value higher (it is currently 1).
Tav
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel