On Mon, May 13, 2013 at 11:44 AM, Daniel Stone <[email protected]> wrote: > 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.
it's one of the quaint charms of ddx programming :-P BR, -R > Cheers, > Daniel > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
