From 08cbf3b50bfe713044f36b363c73768cd042f13c Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 16 May 2011 08:06:12 +0000 Subject: xserver xkeyboar-config mesa git update 16 May 2011 --- xorg-server/hw/xfree86/dri2/dri2.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'xorg-server/hw/xfree86/dri2') diff --git a/xorg-server/hw/xfree86/dri2/dri2.c b/xorg-server/hw/xfree86/dri2/dri2.c index 5c42a51df..bf7ebb9f8 100644 --- a/xorg-server/hw/xfree86/dri2/dri2.c +++ b/xorg-server/hw/xfree86/dri2/dri2.c @@ -83,6 +83,7 @@ typedef struct _DRI2Drawable { CARD64 last_swap_ust; /* ust at completion of most recent swap */ int swap_limit; /* for N-buffering */ unsigned long serialNumber; + Bool needInvalidate; } DRI2DrawableRec, *DRI2DrawablePtr; typedef struct _DRI2Screen { @@ -497,6 +498,8 @@ do_get_buffers(DrawablePtr pDraw, int *width, int *height, DRI2BufferFrontLeft); } + pPriv->needInvalidate = TRUE; + return pPriv->buffers; err_out: @@ -540,9 +543,11 @@ DRI2InvalidateDrawable(DrawablePtr pDraw) DRI2DrawablePtr pPriv = DRI2GetDrawable(pDraw); DRI2DrawableRefPtr ref; - if (!pPriv) + if (!pPriv || !pPriv->needInvalidate) return; + pPriv->needInvalidate = FALSE; + list_for_each_entry(ref, &pPriv->reference_list, link) ref->invalidate(pDraw, ref->priv); } -- cgit v1.2.3