xserver: Branch 'master'

Keith Packard keithp at kemper.freedesktop.org
Wed May 12 10:01:44 PDT 2010


 hw/xfree86/dri2/dri2.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

New commits:
commit 4f0006c2203abe0b7660c5068d6afe236f9bd2a4
Author: Kristian Høgsberg <krh at bitplanet.net>
Date:   Mon May 10 08:36:02 2010 -0400

    dri2: Copy front to fake front in swapbuffer
    
    If we don't have a fake front, nothing will happen.  The fix was extracted
    from a bigger patch from Francisco Jerez.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=27305
    Signed-off-by: Kristian Høgsberg <krh at bitplanet.net>
    Reviewed-by: Pauli Nieminen <suokkos at gmail.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index 11442d0..143163d 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -634,6 +634,8 @@ DRI2SwapComplete(ClientPtr client, DrawablePtr pDraw, int frame,
     ScreenPtr	    pScreen = pDraw->pScreen;
     DRI2DrawablePtr pPriv;
     CARD64          ust = 0;
+    BoxRec          box;
+    RegionRec       region;
 
     pPriv = DRI2GetDrawable(pDraw);
     if (pPriv == NULL) {
@@ -645,6 +647,14 @@ DRI2SwapComplete(ClientPtr client, DrawablePtr pDraw, int frame,
     pPriv->swapsPending--;
     pPriv->swap_count++;
 
+    box.x1 = 0;
+    box.y1 = 0;
+    box.x2 = pDraw->width;
+    box.y2 = pDraw->height;
+    REGION_INIT(pScreen, &region, &box, 0);
+    DRI2CopyRegion(pDraw, &region, DRI2BufferFakeFrontLeft,
+		   DRI2BufferFrontLeft);
+
     ust = ((CARD64)tv_sec * 1000000) + tv_usec;
     if (swap_complete)
 	swap_complete(client, swap_data, type, ust, frame, pPriv->swap_count);


More information about the xorg-commit mailing list