[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.
This commit is contained in:
Kristian Høgsberg
2008-03-03 19:08:26 -05:00
parent 4f7a75cc8a
commit 3d608c7a2d
2 changed files with 3 additions and 2 deletions

View File

@@ -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);
};

View File

@@ -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);
}