EXA composite ops don't report damage

Rob Clark robdclark at gmail.com
Fri May 17 04:23:23 PDT 2013


On Mon, May 13, 2013 at 11:44 AM, Daniel Stone <daniel at fooishbar.org> wrote:
> 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.

it's one of the quaint charms of ddx programming :-P

BR,
-R

> Cheers,
> Daniel
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel


More information about the xorg-devel mailing list