[PATCH] remove damagePostOp() from DamageDamageRegion()

Michel Dänzer michel at tungstengraphics.com
Wed Aug 27 15:47:29 PDT 2008

On Wed, 2008-08-27 at 15:10 -0700, Aaron Plattner wrote:
>  1. Internal X modules that rely on early reporting
>     E.g.: software cursor
>     Doesn't care about when the damage actually lands

EXA also needs pending damage to be accurate (i.e. to reflect the
pending rendering operation) when its pixmap migration logic runs.

>  2. Internal X modules that rely on reportAfter
>     E.g.: EXA
>     Doesn't care about when the damage actually lands

It does care - damage needs to land after the driver rendering functions
have completed but before the pixmap migration logic runs again for the
same pixmap.

> For solving 4:
>     Something like your DamageRegisterCompletionCallback seems like it
> would work.  We'd just need to hash out a server API for it and a way for
> clients to opt in.  We already do something similar today for OpenGL
> rendering to redirected windows: The OpenGL client schedules a completion
> interrupt from the hardware, which wakes up the X driver through a callback
> registered through xf86AddGeneralHandler, which calls DamageDamageRegion.
> (This is one of the reasons I'd like DamageDamageRegion to continue to call
> damageReportPostOp).

Why couldn't it call DamageDamagePostOp (or whatever name people like it
to have) when available?

> For implementing 5:
>     It seems like it would be possible to add a new request that's similar
> to DamageSubtract but that also inserts a sync marker into X's channel and
> returns the counter value to the client.  The client would then use some
> new extension to insert a waitSync on that counter value into its own
> channel before continuing.  This would ensure that the client's rendering
> happens after X's, while allowing both X and the client to continue to
> enqueue more commands.  I'll need to get more feedback from other nvidians
> to hash out the details, but does that sounds reasonable from an X/Mesa/DRI
> perspective?

I think it does, but don't take my word for it. :)

Earthling Michel Dänzer           |          http://tungstengraphics.com
Libre software enthusiast         |          Debian, X and DRI developer

More information about the xorg mailing list