AIGLX on Radeon Mobility

Owen Taylor otaylor at redhat.com
Fri Feb 24 09:36:58 PST 2006


On Fri, 2006-02-24 at 11:30 -0500, Adam Jackson wrote:
> On Thursday 23 February 2006 13:31, Owen Taylor wrote:
> > But updating textures should be irrelevant when dragging windows around,
> > right?
> 
> You'd think that.  The problem is we don't update textures only when the 
> windows they're bound to get updated, but many other times too.
> 
> > Could damage bugs be causing excessive texture updates? luminocity
> > needed some hacks to the X server to work around excessive exposes being
> > generated by DAMAGE.
> 
> I've been staring at the Damage code for a while to figure out how to properly 
> suppress Damages to the moved window during XMoveWindow.  I've failed at it 
> about three times now but hopefully won't fail the fourth.  My most recent 
> effort can be seen in the redhat-xdc2006 branch, which mostly worked but 
> relied on always winning a particular race condition.

The implementation of Damage is hideously hard to understand. My plan of
attack before was to:

 - Nail down the unclear parts of the spec (most of it...)
 - Write test cases
 - Embarrass Keith into fixing the test cases

But I never got beyond part of the first step...
 
> But then the other problem is you still have to redraw the exposed areas, and 
> if those textures got kicked out of vram between the last time they were 
> drawn and now, you lose.  This happens quite frequently because our drivers 
> suck and have little to no concept of memory management, a refrain that 
> should sound pretty familiar right now.  So if it sounds like I'm punting 
> until that work approaches generally usable, well, I am.
> 
> And at least in the metacity case, we really do redraw the entire scene, which 
> means we have to shove a texture for _every_ visible pixmap into VRAM before 
> glXSwapBuffers.  compiz is slightly smarter but relies on having accelerated 
> glCopyPixels, which is probably a win overall.

In the luminocity work, everything was hideously slow initially, and my
assumption was texture thrashing, but then I wrote texturetop to try and
confirm that hypothesis (http://fishsoup.net/software/texturetop/ ...
presumably entirely bitrotted) and it turned out not to be an important
factor.

Now with AIGXL, texture updates should be quite a bit cheaper than
with luminocity, as long as the pixmaps are in system memory, but
excessive texture updates could still be a pretty big performance 
sink, I'd guess.

Regards,
						Owen





More information about the xorg mailing list