diff options
author | Kristian Høgsberg <[email protected]> | 2008-03-03 19:08:26 -0500 |
---|---|---|
committer | Kristian Høgsberg <[email protected]> | 2008-03-03 19:16:20 -0500 |
commit | 3d608c7a2d451b862ae19b1e01d7299b2c46fe78 (patch) | |
tree | 34ce532a5287a39ce714a46d2afd495ae79f6b58 | |
parent | 4f7a75cc8a6cee7763b2d92e3d34858c3de7bd4f (diff) |
[dri2] Add tail pointer to reemitDrawableInfo callback.
When the DRI doesn't parse the event buffer for a while, the X server
may overwrite data that the driver didn't get a chance to look at. The
reemitDrawableInfo callback requests that the X server reemit all info
for the specified drawable. To make use of this, the drive needs to know
the new tail pointer so it know where to start reading from.
-rw-r--r-- | include/GL/internal/dri_interface.h | 3 | ||||
-rw-r--r-- | src/mesa/drivers/dri/common/dri_util.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index 175ff2d3aff..a815c28dbc9 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -424,8 +424,9 @@ struct __DRIcoreDRI2ExtensionRec { * specified drawable in the DRI2 event buffer. * * \param draw the drawable for which to request info + * \param tail the new event buffer tail pointer */ - void (*reemitDrawableInfo)(__DRIdrawable *draw); + void (*reemitDrawableInfo)(__DRIdrawable *draw, unsigned int *tail); }; diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index 72836538830..59224c6651f 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -303,7 +303,7 @@ __driParseEvents(__DRIscreenPrivate *psp, __DRIdrawablePrivate *pdp) * server overwrote it and we have to reset our tail * pointer. */ DRM_UNLOCK(psp->fd, psp->lock, pcp->hHWContext); - (*psp->dri2.core->reemitDrawableInfo)(pdp->pdraw); + (*psp->dri2.core->reemitDrawableInfo)(pdp->pdraw, &pdp->dri2.tail); DRM_LIGHT_LOCK(psp->fd, psp->lock, pcp->hHWContext); } |