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.
> 
> 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.
> 

I just thought about this some more, if you have dynamic block handler
removal outside the block handler, won't the dynamically added/removed
handler always happen last i.e. after the driver one?

I really don't think you've thought this fully out, so I'll send a
patch to fix xf86Rotate.c to not dynamically block handle, and
if you want for 1.8 we can audit and fix up properly including all the
drivers.

Sound sane?
Dave.


_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to