EXA for radeon experimental patch
Lars Knoll
lars at trolltech.com
Wed Aug 31 00:52:37 PDT 2005
On Tuesday 30 August 2005 12:37, Eric Anholt wrote:
[snip]
> As a side note: The lack of render acceleration on my r300 has exposed
> the fact that the migration heuristics aren't working well in the
> absence of Render acceleration. Anyone have a suggestion why that would
> be?
One idea is that the Software uses both Composite calls and regular
blits/solid fills on the pixmap. I know at least Qt does this. Current
versions try to avoid using Render when possible, as it usually is a lot
slower.
So what you might see is that both commands happen and the pixmap gets
migrated back on forth all the time. Also a missing DownloadFromScreen
implementation makes moving pixmaps into main memory rather slow.
Another think I saw is that compositing onto the framebuffer is still always
slow. It might be a good idea is EXA always used DownloadFromScreen (if it
exists) to copy all pixmaps for a composite call into main memory before
attempting to use fbComposite.
I know this would give a huge speedup in some cases. Especially compositing
onto the framebuffer is currently extremely slow as it can't be migrated over
to main memory. Using DownloadFromScreen to make a copy of the framebuffer
area in question (and of the other two operands to composite), doing the
composition completely in main memory and then copying the result back into
the framebuffer would probably be a factor of 10-50 faster than doing calling
fbComposite with something still left in video mem.
Now this is not true for shared memory architectures as the i810, so we would
probably need some way to find out how slow framebuffer reads are (and how
fast DownloadFromScreen is) and decide the strategy to use based on this
information.
Lars
More information about the xorg
mailing list