From: Kristian Høgsberg Date: Tue, 4 Mar 2008 00:08:26 +0000 (-0500) Subject: [dri2] Add tail pointer to reemitDrawableInfo callback. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3d608c7a2d451b862ae19b1e01d7299b2c46fe78;p=mesa.git [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. --- 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); }