EXA composite ops don't report damage
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
> 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.
More information about the xorg-devel