DRI2: synchronize swap interval with server at startup time
authorJesse Barnes <jbarnes@virtuousgeek.org>
Mon, 19 Apr 2010 16:54:08 +0000 (09:54 -0700)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Mon, 19 Apr 2010 16:56:32 +0000 (09:56 -0700)
In the direct rendered case, we need to tell the server our initial swap
interval.  If we don't, the local and server values will be out of sync,
since the server and client defaults may be different (as they were
before this patch).

src/glx/dri2_glx.c

index 06f3d8b71c02a876ebcee5165a9fe1ebed9b8a36..d09d614741d68e5dd6c56c89af0adf2258bd6d8e 100644 (file)
@@ -185,7 +185,7 @@ dri2CreateDrawable(__GLXscreenConfigs * psc,
    pdraw->base.drawable = drawable;
    pdraw->base.psc = psc;
    pdraw->bufferCount = 0;
-   pdraw->swap_interval = 0;
+   pdraw->swap_interval = 1;
 
    DRI2CreateDrawable(psc->dpy, xDrawable);
 
@@ -200,6 +200,11 @@ dri2CreateDrawable(__GLXscreenConfigs * psc,
       return NULL;
    }
 
+   /*
+    * Make sure server has the same swap interval we do for the new
+    * drawable.
+    */
+   DRI2SwapInterval(psc->dpy, xDrawable, pdraw->swap_interval);
    return &pdraw->base;
 }