Animation paintop, bad performance
LukasT.dev@gmail.com
lukast.dev at gmail.com
Sun Oct 10 00:29:13 CEST 2010
Hello,
I'm working on my features for 2.4: "Finish animation-based paintop
(experiment, fluid simulation)"
I wanted to finish the experiment paintop and I found that it might mimic one
feature from Alchemy ( http://al.chemy.org/download/ ), that David Revoy is
using on the painting DVD in the first phase of the painting. He is usually
using it with mirror feature , that is also on my TODO for 2.4.
The feature look like this [1]. In Alchemy it is much more faster :-/
But that is probably architecture reason. I'm trying to find some great
solution for Krita.
So far I solve it like this:
I reuse proof-of-concept in the experimental paintop where every new dab is
rendered like this : I use oldRawData from the layer to clean the previous dab
and actual dab is rendered. I do it by copying the data using old iterators.
1. First optimization could be using the new iterators. Both for copying and
for fillPainterPath
2. Then I thought that testing something like readbytes might be faster but
there is no readbytes for oldRawData -- can we have one or it is complicated?
3. Cyrille suggested me when I was starting with experiment paintop long time
ago to cancel last transaction. How can I do that?
4. Here goes your idea to make it super-duper fast: ...
Video, you can see that it is slow when I draw bigger area
[1] http://lukast.mediablog.sk/videos/krita-experiment-shapes.ogv
Patch
http://lukast.mediablog.sk/patches/new-alchemy-think-animation-paintop.patch
Callgrind log
http://lukast.mediablog.sk/patches/experiment-callgrind.tar.gz
More information about the kimageshop
mailing list