EXA composite ops don't report damage

Daniel Stone daniel at fooishbar.org
Mon May 13 08:44:54 PDT 2013


On 13 May 2013 15:40, Daniel Drake <dsd at laptop.org> wrote:
> On Mon, May 13, 2013 at 3:15 AM, Michel Dänzer <michel at daenzer.net> 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.


More information about the xorg-devel mailing list