Keith Whitwell <kei...@vmware.com> writes: > Francisco, > > Will Mesa continue to build after these changes for people who have not > tracked the latest glproto and dri2proto repos? > > I'd prefer to be able to build Mesa on at least the most recently > released major distros, which may require the use of some #ifdefs in the > changes. > That's one of the reasons of the last rebase, see the comments in "[mesa patch v4 1/3] dri2: Event driven buffer validation.".
> Keith > > On Mon, 2010-02-08 at 10:25 -0800, Francisco Jerez wrote: >> Signed-off-by: Francisco Jerez <curroje...@riseup.net> >> --- >> glx/glxdri2.c | 28 +++++++++++++++++++++++++--- >> 1 files changed, 25 insertions(+), 3 deletions(-) >> >> diff --git a/glx/glxdri2.c b/glx/glxdri2.c >> index 0f998de..dae7b42 100644 >> --- a/glx/glxdri2.c >> +++ b/glx/glxdri2.c >> @@ -67,6 +67,7 @@ struct __GLXDRIscreen { >> >> xf86EnterVTProc *enterVT; >> xf86LeaveVTProc *leaveVT; >> + PreConfigureWindowProcPtr PreConfigureWindow; >> >> const __DRIcoreExtension *core; >> const __DRIdri2Extension *dri2; >> @@ -217,13 +218,13 @@ __glXDRIdrawableSwapBuffers(ClientPtr client, >> __GLXdrawable *drawable) >> __GLXDRIscreen *screen = priv->screen; >> CARD64 unused; >> >> - if (screen->flush) >> - (*screen->flush->flushInvalidate)(priv->driDrawable); >> - >> if (DRI2SwapBuffers(client, drawable->pDraw, 0, 0, 0, &unused, >> __glXdriSwapEvent, drawable->pDraw) != Success) >> return FALSE; >> >> + if (screen->flush) >> + (*screen->flush->invalidate)(priv->driDrawable); >> + >> return TRUE; >> } >> >> @@ -607,6 +608,24 @@ glxDRILeaveVT (int index, int flags) >> } >> >> static void >> +glxDRIPreConfigureWindow(WindowPtr pWin, int x, int y, int w, int h, int bw, >> + WindowPtr pSib) >> +{ >> + ScreenPtr pScreen = pWin->drawable.pScreen; >> + __GLXDRIscreen *screen = (__GLXDRIscreen *)glxGetScreen(pScreen); >> + __GLXDRIdrawable *draw = (__GLXDRIdrawable >> *)glxGetDrawableFromWindow(pWin); >> + >> + if (screen->PreConfigureWindow) >> + (*screen->PreConfigureWindow)(pWin, x, y, w, h, bw, pSib); >> + >> + if (!draw || (draw->height == h && draw->width == w)) >> + return; >> + >> + if (screen->flush) >> + screen->flush->invalidate(draw->driDrawable); >> +} >> + >> +static void >> initializeExtensions(__GLXDRIscreen *screen) >> { >> const __DRIextension **extensions; >> @@ -782,6 +801,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen) >> screen->leaveVT = pScrn->LeaveVT; >> pScrn->LeaveVT = glxDRILeaveVT; >> >> + screen->PreConfigureWindow = pScreen->PreConfigureWindow; >> + pScreen->PreConfigureWindow = glxDRIPreConfigureWindow; >> + >> LogMessage(X_INFO, >> "AIGLX: Loaded and initialized %s\n", filename); >>
pgprk0Voewimp.pgp
Description: PGP signature
------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com
_______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev