summaryrefslogtreecommitdiffstats
path: root/src/glx/glxcmds.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2010-03-22 16:39:11 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2010-03-22 16:41:17 -0700
commit8f4f2a0c3625de2bb2b8e955afc23b3ce8c95f93 (patch)
tree17ed1805d6bbf1772bd0dd67a9348750be8a360c /src/glx/glxcmds.c
parentd9ea1af82c233a10adbf9b842546e9322480591b (diff)
downloadexternal_mesa3d-8f4f2a0c3625de2bb2b8e955afc23b3ce8c95f93.zip
external_mesa3d-8f4f2a0c3625de2bb2b8e955afc23b3ce8c95f93.tar.gz
external_mesa3d-8f4f2a0c3625de2bb2b8e955afc23b3ce8c95f93.tar.bz2
GLX/OML: honor OML semantics even if target, divisor and remainder are 0
This change passes a remainder of 1 to the server with the DRI2SwapBuffers request, causing it to honor the OML semantics for the swap rather than falling through to glXSwapBuffers behavior. The remainder actually ends up ignored since the divisor is 0, but we need to differentiate the OML and standard behavior somehow. Reported-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'src/glx/glxcmds.c')
-rw-r--r--src/glx/glxcmds.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c
index 49cbce7..ea267f3 100644
--- a/src/glx/glxcmds.c
+++ b/src/glx/glxcmds.c
@@ -2507,6 +2507,9 @@ __glXSwapBuffersMscOML(Display * dpy, GLXDrawable drawable,
if (divisor > 0 && remainder >= divisor)
return -1;
+ if (target_msc == 0 && divisor == 0 && remainder == 0)
+ remainder = 1;
+
#ifdef __DRI_SWAP_BUFFER_COUNTER
if (psc->counters != NULL)
return (*psc->sbc->swapBuffersMSC)(pdraw->driDrawable, target_msc,