diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2010-03-22 16:39:11 -0700 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2010-03-22 16:41:17 -0700 |
commit | 8f4f2a0c3625de2bb2b8e955afc23b3ce8c95f93 (patch) | |
tree | 17ed1805d6bbf1772bd0dd67a9348750be8a360c | |
parent | d9ea1af82c233a10adbf9b842546e9322480591b (diff) |
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>
-rw-r--r-- | src/glx/glxcmds.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index 49cbce72f8..ea267f3dd8 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, |