EXA composite ops don't report damage

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


Hi,

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.

Cheers,
Daniel


More information about the xorg-devel mailing list