summaryrefslogtreecommitdiffstats
path: root/src/glx
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2010-01-13 19:01:51 -0500
committerJesse Barnes <jbarnes@virtuousgeek.org>2010-01-13 19:01:51 -0500
commit1cfd769c2ec0b605cacd75c0e9c89346e1f9518d (patch)
treec61e5f243cbcee82ec332f4ff28217a77debaf17 /src/glx
parent62eb28c810a192dab772402904c50eea43b8340e (diff)
downloadexternal_mesa3d-1cfd769c2ec0b605cacd75c0e9c89346e1f9518d.zip
external_mesa3d-1cfd769c2ec0b605cacd75c0e9c89346e1f9518d.tar.gz
external_mesa3d-1cfd769c2ec0b605cacd75c0e9c89346e1f9518d.tar.bz2
DRI2: don't send DRI2 requests the server doesn't know about
At init time, NULL out the hooks that send the server new requests. DRI2 never supported these extensions, so this preserves old behavior on old servers with new Mesa.
Diffstat (limited to 'src/glx')
-rw-r--r--src/glx/x11/dri2_glx.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/glx/x11/dri2_glx.c b/src/glx/x11/dri2_glx.c
index e1688f3..7b0c52b 100644
--- a/src/glx/x11/dri2_glx.c
+++ b/src/glx/x11/dri2_glx.c
@@ -575,11 +575,19 @@ dri2CreateScreen(__GLXscreenConfigs * psc, int screen,
psp->swapBuffers = dri2SwapBuffers;
psp->waitGL = dri2WaitGL;
psp->waitX = dri2WaitX;
- psp->getDrawableMSC = dri2DrawableGetMSC;
- psp->waitForMSC = dri2WaitForMSC;
- psp->waitForSBC = dri2WaitForSBC;
- psp->setSwapInterval = dri2SetSwapInterval;
- psp->getSwapInterval = dri2GetSwapInterval;
+ if (pdp->driMinor >= 2) {
+ psp->getDrawableMSC = dri2DrawableGetMSC;
+ psp->waitForMSC = dri2WaitForMSC;
+ psp->waitForSBC = dri2WaitForSBC;
+ psp->setSwapInterval = dri2SetSwapInterval;
+ psp->getSwapInterval = dri2GetSwapInterval;
+ } else {
+ psp->getDrawableMSC = NULL;
+ psp->waitForMSC = NULL;
+ psp->waitForSBC = NULL;
+ psp->setSwapInterval = NULL;
+ psp->getSwapInterval = NULL;
+ }
/* DRI2 suports SubBuffer through DRI2CopyRegion, so it's always
* available.*/