Hi, On 13 May 2013 15:40, Daniel Drake <[email protected]> wrote: > On Mon, May 13, 2013 at 3:15 AM, Michel Dänzer <[email protected]> wrote: >> The wrapping order is supposed to be the other way around, i.e. the >> Damage layer is supposed to call down to EXA. I suspect you may need to >> switch the order in which the driver initializes EXA vs. the Damage >> layer, or something along those lines. > > Thanks! That fixes it. > > The driver was calling miDCInitialize() (which initialises damage) > before exaDriverInit. And the last person to wrap a function is the > first one that gets called. Changing the order solves the bug in > question. > > Looking at Geode and nouveau drivers I see that init order is quite > sensitive in other areas as well (various "Must be called before xyz" > comments in both cases). Is there a good place to document this EXA vs > Damage requirement? I'd like to prevent someone else from falling into > the same trap.
That's true of pretty much every single thing your driver calls. So the current state of the art is just to copy & paste ScreenInit and friends from another driver, because the documentation wouldn't actually be any shorter than the hundreds of lines of code. Good times. Cheers, Daniel _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
