PolyRectFill preformance

Adam Jackson ajax at redhat.com
Tue Mar 18 09:16:32 PDT 2008


On Sun, 2008-03-16 at 16:59 -0400, Ross Vandegrift wrote:
> On Sun, Mar 16, 2008 at 03:40:41PM -0400, Ross Vandegrift wrote:
> > According to my profiling, these web pages are causing lots of calls to
> > *PolyRectFill.  In both EXA and XAA versions, it looks like the
> > non-accel fallbacks end up in fbBlt.  These calls are from Mozilla's
> > libgfx_gtk.
> > 
> > I'm hoping to find a simpler test case with x11perf.  I'm currently trying
> > to go through x11perf tests to see if I can find a test that'll hit
> > this, but so far no dice (the vast majority of CPU time is being spent
> > in nv_drv.so, which makes me think I haven't found the software
> > fallback yet).
> > 
> > Any tips on tracking this down?
> 
> Following up to myself...
> 
> My x11perf and render_bench tests finished.  None of the rect tests
> and none of the render_bench tests hit this code path.
> 
> Briefly, here's the data I have gathered from oprofiling my box while
> testing with mozilla:
> 
> 284083 samples from libfb.so make up 53% of measured events
> 278681 of those are from fbBlt
> Nearly all of those have this callstack:
> 
> 	fbBlt
> 	fbOddTile
> 	fbTile
> 	fbFill
> 	fbPolyFillRect
> 
> oprofile's callgraph doesn't include who is calling fbPolyFillRect,
> but I see 302393 cases of exaPolyFillRect -> ExaCheckPolyFillRect ->
> fbPolyFillRect, so that path seems like the most likely candidate.
> 
> Beyond this, I can't seem to coax any data out of oprofile on what
> mozilla is doing to cause this.

The only obvious fallback in exaPolyFillRect you could be hitting is:

    if (pGC->fillStyle != FillSolid &&
        !(pGC->tileIsPixel && pGC->fillStyle == FillTiled))
    {
        goto fallback;
    }

Would be informative to instrument that case and see what the fillstyle
is.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg/attachments/20080318/ad01314f/attachment.pgp>


More information about the xorg mailing list