Re: Fixed point cairo.. or no cairo?
- From: Jorn Baayen <jorn openedhand com>
- To: Aivars Kalvans <aivars kalvans inbox lv>
- Cc: performance-list gnome org
- Subject: Re: Fixed point cairo.. or no cairo?
- Date: Wed, 16 Aug 2006 17:53:52 +0300
On Wed, 2006-08-16 at 00:19 +0000, Aivars Kalvans wrote:
> Jorn Baayen wrote:
> > On Fri, 2006-08-11 at 09:42 +0100, Michael Meeks wrote:
> >
> >> Is the common case of that a multiplication by a unit matrix, [ ie. a
> >> no-op ;-] that could be elided if that's detectable / propagate-able ?
> >> [ though it seems there is no space in 'matrix' to ram an 'unsigned int
> >> is-unit : 1' into ;-) Or is it perhaps a simple scaling [ reduce by 2x
> >> the muls ? ].
> >>
> >
> > I'm not so sure. Carl?
> >
>
> Matrix with values like { 1.0, 0.0, 0.0, 1.0, 0.0, 0.0 } does not
> require any multiplication, because result is the same as input. Both
> gstate->ctm and gstate->target->device_transform had such values when I
> run your test program. This often seems to be true for "real"
> applications as well (tried gedit). Sometimes x0 and y0 are not 0.0, but
> for such cases we could add another workaround (x += x0, y+= y0).
Yea, I was not sure whether this was a common case. Apparently it is,
because your patch causes __muldf3() to drop from 7.7% to 3.9% :)
The full patched cairo profile is here:
http://www.o-hand.com/~jorn/pango-benchmarks/210-softfloat/cairo-must-transform.txt
Cool stuff.
Thanks,
Jorn
--
OpenedHand Ltd.
http://o-hand.com/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]