Ian, maybe there's a better way to do this?
We need to enable OML_sync_control only if supported, now that we can
actually support it, otherwise old userspace depending on the somewhat
broken old behavior will break.
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index 29d589c..d69bb32 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -614,6 +614,7 @@ dri2CreateScreen(__GLXscreenConfigs * psc, int screen,
psp->setSwapInterval = dri2SetSwapInterval;
psp->getSwapInterval = dri2GetSwapInterval;
#endif
+ __glXEnableExtension(psc, "GLX_OML_sync_control");
}
/* DRI2 suports SubBuffer through DRI2CopyRegion, so it's always
diff --git a/src/glx/glxextensions.c b/src/glx/glxextensions.c
index 56c69cb..1f19ac1 100644
--- a/src/glx/glxextensions.c
+++ b/src/glx/glxextensions.c
@@ -90,7 +90,7 @@ static const struct extension_info known_glx_extensions[] = {
{ GLX(NV_render_texture_rectangle), VER(0,0), N, N, N, N },
{ GLX(NV_vertex_array_range), VER(0,0), N, N, N, Y }, /* Deprecated */
{ GLX(OML_swap_method), VER(0,0), Y, Y, N, N },
- { GLX(OML_sync_control), VER(0,0), Y, N, N, Y },
+ { GLX(OML_sync_control), VER(0,0), N, N, N, N },
{ GLX(SGI_make_current_read), VER(1,3), Y, N, N, N },
{ GLX(SGI_swap_control), VER(0,0), Y, N, N, N },
{ GLX(SGI_video_sync), VER(0,0), Y, N, N, Y },
@@ -371,6 +371,18 @@ __glXEnableDirectExtension(__GLXscreenConfigs * psc, const
char *name)
name, strlen(name), GL_TRUE, psc->direct_support);
}
+void
+__glXEnableExtension(__GLXscreenConfigs * psc, const char *name)
+{
+ __glXExtensionsCtr();
+ __glXExtensionsCtrScreen(psc);
+
+ set_glx_extension(known_glx_extensions,
+ name, strlen(name), GL_TRUE, psc->direct_support);
+ set_glx_extension(known_glx_extensions,
+ name, strlen(name), GL_TRUE, client_glx_support);
+}
+
/**
* Initialize global extension support tables.
*/
diff --git a/src/glx/glxextensions.h b/src/glx/glxextensions.h
index f556b12..f9f4ddd 100644
--- a/src/glx/glxextensions.h
+++ b/src/glx/glxextensions.h
@@ -259,6 +259,8 @@ extern GLboolean __glExtensionBitIsEnabled(const struct
__GLXcontextRec *gc,
extern void
__glXEnableDirectExtension(struct __GLXscreenConfigsRec *psc,
const char *name);
+extern void
+__glXEnableExtension(struct __GLXscreenConfigsRec *psc, const char *name);
/* Source-level backwards compatibility with old drivers. They won't
* find the respective functions, though.
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev