mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-27 05:30:24 +01:00
glx: Only call DRI2 invalidate when necessary
We only need this when the server may have swapped the buffers or when we receive an invalidate event from the server. The default behaviour is still that the DRI driver will invalidate its own buffers when glViewport is called. https://bugs.freedesktop.org/show_bug.cgi?id=27277
This commit is contained in:
parent
7c5152c199
commit
2d00d16da7
1 changed files with 4 additions and 12 deletions
|
|
@ -359,14 +359,6 @@ dri2WaitGL(__GLXDRIdrawable * pdraw)
|
|||
static void
|
||||
dri2FlushFrontBuffer(__DRIdrawable *driDrawable, void *loaderPrivate)
|
||||
{
|
||||
__GLXDRIdrawablePrivate *pdraw = loaderPrivate;
|
||||
__GLXdisplayPrivate *priv = __glXInitialize(pdraw->base.psc->dpy);
|
||||
__GLXDRIdisplayPrivate *pdp = (__GLXDRIdisplayPrivate *)priv->dri2Display;
|
||||
|
||||
/* Old servers don't send invalidate events */
|
||||
if (!pdp->invalidateAvailable)
|
||||
dri2InvalidateBuffers(priv->dpy, pdraw->base.drawable);
|
||||
|
||||
dri2WaitGL(loaderPrivate);
|
||||
}
|
||||
|
||||
|
|
@ -427,16 +419,16 @@ dri2SwapBuffers(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
|
|||
(*pdraw->psc->f->flush)(pdraw->driDrawable);
|
||||
#endif
|
||||
|
||||
/* Old servers don't send invalidate events */
|
||||
if (!pdp->invalidateAvailable)
|
||||
dri2InvalidateBuffers(dpyPriv->dpy, pdraw->drawable);
|
||||
|
||||
/* Old servers can't handle swapbuffers */
|
||||
if (!pdp->swapAvailable) {
|
||||
dri2CopySubBuffer(pdraw, 0, 0, priv->width, priv->height);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Old servers don't send invalidate events */
|
||||
if (!pdp->invalidateAvailable)
|
||||
dri2InvalidateBuffers(dpyPriv->dpy, pdraw->drawable);
|
||||
|
||||
#ifdef X_DRI2SwapBuffers
|
||||
DRI2SwapBuffers(pdraw->psc->dpy, pdraw->xDrawable, target_msc, divisor,
|
||||
remainder, &ret);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue