Top-most windows

Deron Johnson Deron.Johnson at Sun.COM
Wed Jan 18 14:45:10 PST 2006



Keith Packard wrote On 01/18/06 12:30,:
> On Wed, 2006-01-18 at 11:45 -0800, Deron Johnson wrote:
> 
> 
>>First, in miMoveWindow and miSlideAndSizeWindow I had to make sure that
>>miValidateTree is called instead of the DDX ValidateTree; apparently the
>>Nvidia DDX ValidateTree function does DID painting. In addition, I had
>>to force miHandleValidateExposures to be called instead of the DDX
>>HandleExposures routine.
> 
> 
> Ok, so the nvidia DDX is busted. No huge surprise, too bad we can't
> easily fix it.

I'm not convinced that the Nvidia DDX is the one that is busted. There
are no specific semantics in the DDX porting layer that specify when
DID painting should and should not occur. The Nvidia DDX is doing
nothing wrong when it is painting DIDs in the ValidateTree and
HandleExposures functions.

>>Next, I needed to prevent cwPaintWindowBackground (and Border) from
>>calling the DDX PaintWindowBackground/Border routine during window moves
>>and resizes. The wrapping is such that cw calls directly into the DDX.
> 
> 
> Oh, this is CompositeWrapper stuff. With EXA rolling into most of the
> other drivers, the need for this code will be eliminated for everything
> except existing nVidia drivers.

Could you remind me what EXA is and how it will fix this problem? I
haven't been following the EXA stuff very closely. Is EXA going into the
proprietary ATI drivers, or just the DRI drivers?

> I'd like to know what changes would be required in an environment where
> you had access to the driver code and avoided the composite wrapper
> mess.

If one had access to the DDX code one could modify the following DDX
functions to not paint DIDs for a composite-redirected window:
ValidateTree, HandleExposures, PaintWindowBackground, PaintWindowBorder.





More information about the xorg-arch mailing list