https://bugs.kde.org/show_bug.cgi?id=360033
--- Comment #10 from Thomas Lübking <thomas.luebk...@gmail.com> --- Because of bug #355522 => Bottom line would be that we need to store the robustness locally, what also means to wire it up from the backend to the glutils. Ewww. Something along this? diff --git a/glxbackend.cpp b/glxbackend.cpp index c59c647..c632082 100644 --- a/glxbackend.cpp +++ b/glxbackend.cpp @@ -286,13 +286,20 @@ bool GlxBackend::initRenderingContext() if (!ctx) ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_31_core); + if (ctx) { + blacklistGLExtension(QByteArrayLiteral("GL_ARB_robustness")); + blacklistGLExtension(QByteArrayLiteral("GL_EXT_robustness")); + } } if (!ctx && have_robustness) ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_legacy_robustness); - if (!ctx) + if (!ctx) { + blacklistGLExtension(QByteArrayLiteral("GL_ARB_robustness")); + blacklistGLExtension(QByteArrayLiteral("GL_EXT_robustness")); ctx = glXCreateContextAttribsARB(display(), fbconfig, 0, direct, attribs_legacy); + } } if (!ctx) diff --git a/libkwineffects/kwinglutils.cpp b/libkwineffects/kwinglutils.cpp index bd84db7..c4d33f2 100644 --- a/libkwineffects/kwinglutils.cpp +++ b/libkwineffects/kwinglutils.cpp @@ -181,6 +181,13 @@ bool hasGLExtension(const QByteArray &extension) return glExtensions.contains(extension) || glxExtensions.contains(extension) || eglExtensions.contains(extension); } +void blacklistGLExtension(const QByteArray &extension) +{ + glExtensions.removeAll(extension); + glxExtensions.removeAll(extension); + eglExtensions.removeAll(extension); +} + static QString formatGLError(GLenum err) { switch(err) { diff --git a/libkwineffects/kwinglutils.h b/libkwineffects/kwinglutils.h index 3c1ac28..e9aa313 100644 --- a/libkwineffects/kwinglutils.h +++ b/libkwineffects/kwinglutils.h @@ -69,6 +69,7 @@ bool KWINGLUTILS_EXPORT hasGLXVersion(int major, int minor, int release = 0); bool KWINGLUTILS_EXPORT hasEGLVersion(int major, int minor, int release = 0); // use for both OpenGL and GLX extensions bool KWINGLUTILS_EXPORT hasGLExtension(const QByteArray &extension); +void KWINGLUTILS_EXPORT blacklistGLExtension(const QByteArray &extension); // detect OpenGL error (add to various places in code to pinpoint the place) bool KWINGLUTILS_EXPORT checkGLError(const char* txt); ---- We could also turn this into a wider concept of "KWIN_IGNORE_GL_EXTENSIONS=GL_EXT_Foo,GL_ARB_Bar" (which is possible on MESA but afaik not on the blob drivers) -- You are receiving this mail because: You are watching all bug changes.