EXA performance problem

Maarten Maathuis madman2003 at gmail.com
Sun Nov 27 13:45:11 PST 2011


On Sun, Nov 27, 2011 at 9:40 PM, Christoph Bartoschek
<bartoschek at or.uni-bonn.de> wrote:
> Am 27.11.2011 16:13, schrieb Maarten Maathuis:
>>
>> On Sun, Nov 27, 2011 at 3:55 PM, Christoph Bartoschek
>> <bartoschek at or.uni-bonn.de>  wrote:
>>>
>>> Hi,
>>>
>>> I still have a huge performance problem with Xorg. One application that
>>> painted 2 Mio rectangles on the screen within a second or so with XFree86
>>> needs about a minute with Xorg.
>>>
>>> Most of the time is spent in libpixman. I've added some debug statements
>>> and
>>> see that pixman_raster_op is called about 7.2 mio times during my
>>> testcase.
>>>
>>> I do not think that pixman itself is the problem. It is just used too
>>> often
>>> by EXA.
>>>
>>> Is there anything I can do about this? Is there a better list where I can
>>> ask? Or do you know a person that might be interested in solving such a
>>> problem?
>>>
>>> Christoph
>>> _______________________________________________
>>> xorg at lists.freedesktop.org: X.Org support
>>> Archives: http://lists.freedesktop.org/archives/xorg
>>> Info: http://lists.freedesktop.org/mailman/listinfo/xorg
>>> Your subscription address: madman2003 at gmail.com
>>>
>>
>> As far as i know it basically boils down to this, rendering rectangles
>> is done in a software library as you observed. If your pixmap happens
>> to be outside normal ram then a lot of reads will kill performance.
>> These days the aim should be to use as little core rendering as
>> possible. A modern toolkit or a rendering library like cairo should
>> handle this far better.
>>
>
> How can I check whether the pixmap is outside the normal ram? For me it does
> not look as if pixman is used for rendering the image. It looks as if EXA is
> managing the region that needs updates with pixman routines. But I could be
> wrong here.
>
> Christoph
>

Only the driver knows that. If you know what driver it is, you can
also figure out if the driver handles pixmap allocation themselves.
Then you can see if they (are likely) to use dedicated video ram,
which is the only uncached memory (=slow read) i can think of right
now. I don't know off the top of my head how to determine if a pixmap
is "offscreen" (for a driver that allocates pixmaps this means that
the pixmap is under driver control, the alternative is that it's a
malloc private to exa).

-- 
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.



More information about the xorg mailing list