[Intel-gfx] [PATCH] intel: fix fullscreen damage posting on pageflip

Dave Airlie airlied at gmail.com
Thu Oct 11 10:12:18 CEST 2012


On Thu, Oct 11, 2012 at 5:53 PM, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> On Thu, 11 Oct 2012 14:30:29 +1000, Dave Airlie <airlied at gmail.com> wrote:
>> From: Dave Airlie <airlied at redhat.com>
>>
>> While playing with MPX and sw cursor I noticed page flips won't
>> end up misrendering some bits, so the sw cursor was replacing the
>> bits on the wrong pixmap.
>>
>> Fix the damage handling to be correct and append damage before swapping
>> the pointers and process damage after.
>>
>> This fixes misrendering with MPX cursors under a fullscreen compositor,
>> that pageflips.
>
> Wow, what magic is this? The created region is the same and
> front->drawable left unmodified by the exchange. The exchange only
> manipulates the devPrivates and has not other side effects. The only
> uncertain quantity there is the intel_glamor_exchange_buffers()...
>
> So the change is that we append the same damage to the same drawable
> earlier, yet still process that damage at the same time, with no
> apparent side-effects between the two operations. I'm just not
> understanding why this has any effect.

Hence why I didn't do it right in the first place, I thought I
understood how damage worked :-)

We have pre-rendering damage reporting and post-rendering damage
reporting!, so sw cursors really wants it before the fact so it can
copy the area out underneath itself,

damage append will process the pre-damage stuff, and pending will
process post-damage hooks.

Dave.



More information about the Intel-gfx mailing list