New fb-based DDX, performance regressions relative to xfree86
Michel Dänzer
michel at daenzer.net
Tue Dec 15 09:16:39 PST 2009
On Tue, 2009-12-15 at 11:48 -0500, Adam Jackson wrote:
> On Mon, 2009-12-14 at 21:32 -0500, Timothy Normand Miller wrote:
>
> > For most things that get decomposed into spans, the performance is the same:
> >
> > 3450.0 3610.0 ( 1.05) 500-pixel wide circle
> > 3330.0 3330.0 ( 1.00) (xor) 500-pixel wide circle
> >
> > But for some things, the new DDX is worse:
> >
> > 2800.0 4910.0 ( 1.75) 100-pixel wide dashed circle
> > 238.0 917.0 ( 3.85) (xor) 100-pixel wide dashed circle
> > 2680.0 5290.0 ( 1.97) 100-pixel wide double-dashed circle
> > 245.0 908.0 ( 3.71) (xor) 100-pixel wide double-dashed circle
> >
> > Between xfree86 that supported cfb and x.org that doesn't, have any
> > major changes been made to mi? I'm wondering, for instance, if mi is
> > ordering spans differently? Or have bugs been fixed that might have
> > an impact here? So far, I can't figure out if I have a mistake in my
> > span rendering code of if I'm being sent something different to
> > render. My span rendering code (and hardware) is WAY faster if the
> > spans are sorted in ascending order of Y coordinate. They used to be
> > (more or less). Are they still?
>
> The mi code itself changed very little between XFree86 4.3.0 and X.Org
> 6.7.0. The biggest change appears to be the introduction of
> miRegionEqual and the use of that consistently instead of open-coded
> compares; this could certainly have some effect when sorting spans.
> There's a modest amount of functional change in mi/ between 6.7.0 and
> xserver 1.1.1, but none of it in the span code (mostly to do with the
> extension enable/disable code and the fixes/damage/composite
> integration).
If the old X server didn't have the damage layer yet, I suspect that
might account for some of the overhead... Profiling with sysprof or
oprofile might be interesting.
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
More information about the xorg-devel
mailing list