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.
* 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);
};
* 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);
}