diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e45fb23e7..7b7d355076 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Unreleased - Fixed EGL dereferencing raw window handles on everything but X11 in legacy `Window` and `Pixmap` surface creation. +- On GLX, fixed startup failure when passing default `Flush` with `KHR_context_flush_control`. # Version 0.30.7 diff --git a/glutin/src/api/glx/context.rs b/glutin/src/api/glx/context.rs index ba8dbe0335..4e59dfa265 100644 --- a/glutin/src/api/glx/context.rs +++ b/glutin/src/api/glx/context.rs @@ -166,10 +166,10 @@ impl Display { // Flush control. if self.inner.features.contains(DisplayFeatures::CONTEXT_RELEASE_BEHAVIOR) { match context_attributes.release_behavior { - ReleaseBehavior::Flush => { - attrs.push(glx_extra::CONTEXT_RELEASE_BEHAVIOR_ARB as c_int); - attrs.push(glx_extra::CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB as c_int); - }, + // This is the default behavior in specification. + // + // XXX passing it explicitly causing issues with older mesa versions. + ReleaseBehavior::Flush => (), ReleaseBehavior::None => { attrs.push(glx_extra::CONTEXT_RELEASE_BEHAVIOR_ARB as c_int); attrs.push(glx_extra::CONTEXT_RELEASE_BEHAVIOR_NONE_ARB as c_int); diff --git a/glutin/src/api/wgl/context.rs b/glutin/src/api/wgl/context.rs index 41f8630ee6..b95ed83e7d 100644 --- a/glutin/src/api/wgl/context.rs +++ b/glutin/src/api/wgl/context.rs @@ -173,10 +173,11 @@ impl Display { // Flush control. if self.inner.features.contains(DisplayFeatures::CONTEXT_RELEASE_BEHAVIOR) { match context_attributes.release_behavior { - ReleaseBehavior::Flush => { - attrs.push(wgl_extra::CONTEXT_RELEASE_BEHAVIOR_ARB as c_int); - attrs.push(wgl_extra::CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB as c_int); - }, + // This is the default behavior in specification. + // + // XXX even though we check for extensions don't pass it because it could cause + // issues. + ReleaseBehavior::Flush => (), ReleaseBehavior::None => { attrs.push(wgl_extra::CONTEXT_RELEASE_BEHAVIOR_ARB as c_int); attrs.push(wgl_extra::CONTEXT_RELEASE_BEHAVIOR_NONE_ARB as c_int);