Re: EXA performance problem | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
On Mon, Nov 28, 2011 at 4:49 PM, Christoph Bartoschek
<bartoschek@xxxxxxxxxxxxxx> wrote:
> Am 28.11.2011 10:35, schrieb Christoph Bartoschek:
>
>> Now one has to look at
>> (*pGC->ops->PolyRectangle)(pDrawable, pGC, nRects, pRects);
>
> Here is what I see so far:
>
> - damagePolyRectangle is called for 2044 rectangles.
>
> - the damage region is computed it consists of about 1000 rectangles each
> time.
>
> - miPolyRectangle is called.
>
> - the function iterates over all rectangles and calls exaPolylines for each
> of them because most have only a width and height of 0
>
> - exaPolylines calls ExaCheckPolylines.
>
>
> We see that for each rectanlge ExaCheckPolylines is called. I have added
> timers to this function to see what costs time:
>
>
> void
> ExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
> int mode, int npt, DDXPointPtr ppt)
> {
> EXA_PRE_FALLBACK_GC(pGC);
> EXA_FALLBACK(("to %p (%c), width %d, mode %d, count %d\n",
> pDrawable, exaDrawableLocation(pDrawable),
> pGC->lineWidth, mode, npt));
>
> exaPrepareAccess (pDrawable, EXA_PREPARE_DEST); // Step1: 55 s
> exaPrepareAccessGC (pGC); // Step2: 2.4 s
> pGC->ops->Polylines (pDrawable, pGC, mode, npt, ppt); // Step3: 2.4 s
> exaFinishAccessGC (pGC); // Step4: 2.2 s
> exaFinishAccess (pDrawable, EXA_PREPARE_DEST); // Step5: 2.2 s
> EXA_POST_FALLBACK_GC(pGC);
> }
>
>
> We see that exaPrepareAccess needs most of the time. Is that expected?
>
> Inside we see that there are some region operations on the damage region in
> exaCopyDirty. As said before the damage region contains about 1000
> rectangles. So we have 2000 times several operations on 1000 rectangeles.
>
> I think this explains the runtime.
>
> Isn't it somehow possible to batch the rectangle drawing such that the
> region operations are not neccessary for each rectangle?
>
> Isn't is possible to expand the damage region such that it contains less
> rectangles?
>
> Is this still the correct list, or should I ask the EXA questions elsewhere?
>
> Christoph
> _______________________________________________
> xorg@xxxxxxxxxxxxxxxxxxxxx: X.Org support
> Archives: http://lists.freedesktop.org/archives/xorg
> Info: http://lists.freedesktop.org/mailman/listinfo/xorg
> Your subscription address: madman2003@xxxxxxxxx
>
EXA doesn't have a seperate list, but now that you ask, you should
probably move to the xorg-devel mailinglist :-)
I don't have any answers right now, but i'll think about it.
--
Far away from the primal instinct, the song seems to fade away, the
river get wider between your thoughts and the things we do and say.
_______________________________________________
xorg@xxxxxxxxxxxxxxxxxxxxx: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: list-xorg@xxxxxxxxxxx
[X Forum] [Nouveau Driver] [Devices] [XFree86] [XFree86 Newbie] [Site Home] [IETF Annouce] [Security] [Fontconfig] [Bugtraq] [Photo] [Yosemite] [MIPS Linux] [ARM Linux] [Linux Security] [Video for Linux] [Linux RAID] [Linux Resources]