summaryrefslogtreecommitdiff
path: root/glx
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2013-02-14 15:06:57 -0800
committerKeith Packard <keithp@keithp.com>2013-03-18 11:23:57 -0700
commit190b0321510b99d4738915f540cea5c0c51e07e2 (patch)
treefcb48234f7fffb2658922881fe617bdd6f0f5eb7 /glx
parent116f020102fd6c2a603069a639b113dfa31b48b7 (diff)
GLX/DRI2: Do not expose INTEL_swap_event without swap control
Swap events depent on the implementation of ScheduleSwap. By unconditionally enabling GLX_INTEL_swap_event we're breaking the system with drivers that don't support it because the apps are forever stuck waiting for an event that will never be delivered. So lets enable the extension only if the hooks it depends on are actually there. Signed-off-by: Zack Rusin <zackr@vmware.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'glx')
-rw-r--r--glx/glxdri2.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index 8fba6a87d..e07cb5632 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -857,8 +857,6 @@ initializeExtensions(__GLXDRIscreen * screen)
__glXEnableExtension(screen->glx_enable_bits, "GLX_MESA_copy_sub_buffer");
LogMessage(X_INFO, "AIGLX: enabled GLX_MESA_copy_sub_buffer\n");
- __glXEnableExtension(screen->glx_enable_bits, "GLX_INTEL_swap_event");
- LogMessage(X_INFO, "AIGLX: enabled GLX_INTEL_swap_event\n");
#if __DRI_DRI2_VERSION >= 3
if (screen->dri2->base.version >= 3) {
@@ -876,8 +874,10 @@ initializeExtensions(__GLXDRIscreen * screen)
#endif
if (DRI2HasSwapControl(pScreen)) {
+ __glXEnableExtension(screen->glx_enable_bits, "GLX_INTEL_swap_event");
__glXEnableExtension(screen->glx_enable_bits, "GLX_SGI_swap_control");
__glXEnableExtension(screen->glx_enable_bits, "GLX_MESA_swap_control");
+ LogMessage(X_INFO, "AIGLX: enabled GLX_INTEL_swap_event\n");
LogMessage(X_INFO,
"AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control\n");
}