[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: Re: paintopsettings refactoring
From: Cyrille Berger <cberger () cberger ! net>
Date: 2010-01-19 22:37:41
Message-ID: 201001192337.41258.cberger () cberger ! net
[Download RAW message or body]
On Tuesday 19 January 2010, LukasT.dev@gmail.com wrote:
> > I think the biggest performance improvement could be to optimize the case
> > where the particles all have the same color.
> > There you can write all particle shapes to a QPainterPath and pass that
> > to fillPainterPath instead of doing one path per particle.
>
> This case is not very common. You choose at least random opacity so that it
> looks cool. But I may give it a try.
>
> I was interested more in the temporary paint devices. Any idea about that?
I can see that in the last callgrind you gave, you don't have the latest
optimization on the KisPaintDevice constructor. As for the temporary paint
device, they come from the KisPainter::fillPainterPath function. For some
reason, kcachegrind graph is confused and set the parent of KisPaintDevice
constructor to <cycle 15>, but you can see the callers in the "callers" tab.
The last major cost is the creation of the datamanager and the filling of the
first tile. Looking at it, we do a lot of call to memcpy, and just to assign
the value '0' to the full tile... I am thinking that we could be more clever
and use "memset" there, replacing the default pixel by a integer (or to be
more precise having both options, either a defaultPixel or set to 0). The way
I see it, we would allow to pass a defaultPixel== 0, and in filesTileData we
check if defaultPixel==0, in which case we call memset(data, 0), or we do the
filling with the defaultPixel (we could even use a smarter algorithm to fill, to
reduce the number of memcpy).
--
Cyrille Berger
_______________________________________________
kimageshop mailing list
kimageshop@kde.org
https://mail.kde.org/mailman/listinfo/kimageshop
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic