Hi Matt,

On Tue, 1 May 2001, Matt wrote:

> Using gprof (wouldn't used one of the other better ones, but none would
> build on Redhat 7.1 :( ) and Kprof, I did some analysis on the performance
> profiling output.

Thanks! It pointed out at least one thing we really shoult have a look at:

> A couple of places that optimization could help:
>  _gfxr_auxbuf_spread  (754 calls @ 6.7ms/call)

Looking at the comments, I think I knew that this thing was not very
fast when I wrote it. However, it's a non-trivial algorithm to determine
the outer boundaries of the area the fill algorithm may draw to;
considerable care should be taken when working on it (slight modifications
to this algorithm fixed and caused most of the graphical problems with
background pictures in the past).
However, I'm pretty sure that this is a good candidate for optimization.

> gfx_xlate_pixmap      (283 calls @ 12.9ms/call)

The filters 'none' and 'trilinear' should be pretty much optimized,
although some smaller incremental improvements might still be possible.
'linear' could use a lot of optimization, but it's rarely used since we
have 'trilinear' anyway.

> _gfxwop_visual_draw   (1189 calls @ 2.8ms/call)

This does a full widget tree traversal and draws all changes. There's
little we can do there, I'm afraid.

> While investigating, I noticed that on gfx_resource.c around line 211
> SIZETYPE, FUNCNAME,etc are defined and then re-defined around line 221.
> Is this supposed to be happening? It looks like an ifdef/endif pair is
> missing.

No, this is perfectly fine. Those #defines are #undef'd in the file
included (you could think of them as compilation parameters for the file).
We include gfx_pixmap_scale.c four times to build pixmap scaling functions
hardwired to specific color depths.

> To reproduce my results, go get kprof (http://kprof.sourceforge.net, needs
> KDE and qt installed).
[...]

Thanks, but Qt and the KDE libs that come with Debian are built with gcc,
making them unuseable on Alpha (because they're implemented in C++).
I don't want to go through building all of them manually with Compaq's
cxx, so I'll install the woody package on the old leftover IA32 box.

Thanks again!

llap,
 Christoph


Reply via email to