[PATCH 0/2] Damage driver hooks

Aaron Plattner aplattner at nvidia.com
Sat Jul 18 11:41:53 PDT 2009


On Sat, Jul 18, 2009 at 08:37:38AM -0700, Michel Dänzer wrote:
> On Fri, 2009-07-17 at 15:10 -0700, Aaron Plattner wrote: 
> > This pair of patches adds hooks that allow drivers (or other server modules) to
> > wrap the creation, registration, unregistration, and destruction of Damage
> > objects.  This allows drivers like the NVIDIA driver to turn notifications on
> > and off for direct-rendering OpenGL and VDPAU clients as Damage clients appear
> > and disappear.  Currently, the driver has no way of knowing when a Damage object
> > is created, which hinders screen-scraping programs like x11vnc.
> 
> How so? There's at least two possible solutions available for generating
> damage from direct rendering components:
> 
>       * XDamageAdd(), as used by the Mesa libGL with DRI1.
>       * Doing the actual manipulation of X drawable contents in the X
>         server, as done by DRI2.

Sure, there are a multitude of mechanisms by which the driver can generate
Damage events that can be received by any listening client.  However, that
doesn't solve the problem of when that code should be enabled.  Always
generating these events or serializing all of the updates through the X server
would be an unacceptable performance hit.  The driver needs to know when a
Damage client registers for events so that it can tell the direct-rendering
client to turn on its event generation.


More information about the xorg-devel mailing list