[PATCH 3/3] exa: properly wrap Create/DestroyPixmap in ExaCheckPolyArc and fix GC (un)wrapping.

Michel Dänzer michel at daenzer.net
Thu Nov 12 13:48:30 PST 2009


On Thu, 2009-11-12 at 20:30 +0100, Maarten Maathuis wrote: 
> 2009/11/12 Michel Dänzer <michel at daenzer.net>:
> > On Sat, 2009-11-07 at 13:32 +0100, Maarten Maathuis wrote:
> >> - Fix the system that is required for it to actually work.
> >> - The comment near the new macros explains the problem that existed before.
> >
> > I'm not sure it really explains why we need two levels of wrapping.
> 
> The 2nd level is needed is because you want to do something more than
> usual wrapping.
> The DestroyPixmap example is a nice one. If i use single wrapping i
> loose fbDestroyPixmap which is unacceptable, because the chain has to
> be like this: exaDestroyPixmapWithFinish->damageDestroyPixmap->exaDestroyPixmap->(w)fbDestroyPixmap,
> with single wrapping this would be
> exaDestroyPixmapWithFinish->damageDestroyPixmap->exaDestroyPixmap->exaDestroyPixmapWithFinish,
> which is a loop.

exaDestroyPixmapWithFinish->damageDestroyPixmap looks like a layering
violation. Could that be at least part of the problem in the first
place?


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the xorg-devel mailing list