Re: EXA performance problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Am 28.11.2011 07:43, schrieb Maarten Maathuis:
xorg@xxxxxxxxxxxxxxxxxxxxx: X.Org support
Your subscription address: madman2003@xxxxxxxxx

No, damage is an extention, it is called by EXA, it's probably adding
all you rectangles to a damage region used to determine how much data
is actually valid (needed for ram<-->vram migrations for example).

One thing that just comes to mind, if you are rendering a million
rectangles, how many of those do you actually see on your screen?

Most of them are only 1x1 pixel wide. And lots of rectangles share the same pixel. I assue that one can optimize the application. But I did not write it and do not know how it works. I only know that it was able to show vector pictures consisting of millions of rectangles within seconds (VLSI design data) when run on XFree86. With Xorg it takes minutes.

I only see the problem because we recently upgraded our X11 thin clients to better hardware. But they turned out to be much slower than the older ones.

My quest to find the problem has led me to the damage extension now. First I thought it was a network problem. But Xorg was also slow on my notebook when the program was started locally.

The contrast is striking: The old XFree86 thin clients were able to draw all the rectangles that were sent over a 100 MBit ethernet network in seconds. While my more powerful Xorg server needs minutes although the software runs on the same machine.

However, I was able to improve the runtime of the first operation in damagePolyRectangle. The runtime of my benchmark went down from 90 seconds to 64 seconds.

Now one has to look at
(*pGC->ops->PolyRectangle)(pDrawable, pGC, nRects, pRects);

xorg@xxxxxxxxxxxxxxxxxxxxx: X.Org support
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]

Powered by Linux