unwrapping inside the wrapper (xf86Rotate)

Dave Airlie airlied at redhat.com
Wed Sep 30 14:30:41 PDT 2009


(noobed up cc).

On Wed, 2009-09-30 at 14:22 -0700, Keith Packard wrote:
> Excerpts from Dave Airlie's message of Wed Sep 30 13:04:35 -0700 2009:
> 
> > Lots of drivers have block handlers, and really I'd like a solution
> > for 1.7 that doesn't break API which technically this kinda does,
> 
> The driver block handler is at the bottom, all X server block handlers
> stack on top of that, so the driver doesn't have to deal with
> wrapping.
> 

Thats not true here at all, driver wrap, the the xf86Crtc code wraps
below us.

Dave.

> And, no, I don't know why drivers appear to believe that they need to
> deal with wrapping.
>  
> > So I suggest fixing Rotate to operate like everyone else, and
> > for the future, doing it right, with a full audit.
> 
> An audit of the X server should suffice here.
> 
> composite/compinit.c:	 		correct
> exa/exa.c:				correct
> hw/xfree86/common/xf86VGAarbiter.c:	incorrect
> hw/xfree86/dri/dri.c:			incorrect (in several ways)
> hw/xfree86/modes/xf86Rotate.c:		correct
> mi/misprite.c:				incorrect
> render/animcur.c:			correct
> 
> Let's fix these. And, fix misprite to pull itself out of the block
> handler chain when there aren't any sw cursors; that function does a
> ton of stuff, and gets called frequently.
> 



More information about the xorg-devel mailing list