Hi all,

the fix we did for NVIDIA in Plasma 5.10.3 introduced a regression which can result in a freeze on startup. The bug is https://bugs.kde.org/show_bug.cgi?id=381767

The problem is that we perform a checkGLError in the initialization code. The robustness extension has the unfortunate behavior that it's error does not get cleared when calling glGetError.

Our code looks like this:
    while (err != GL_NO_ERROR) {
qCWarning(LIBKWINGLUTILS) << "GL error (" << txt << "): " << formatGLError(err);
        hasError = true;
        err = glGetError();
    }

So whenever we get a context lost error we go into an endless loop. This is especially fun as the documentation of glGetError has (verbatim quote): "Thus, glGetError should always be called in a loop, until it returns GL_NO_ERROR, if all error flags are to be reset." - The problem we hit is not mentioned in any documentation, but if you google for it you see other projects hit it, like e.g. mutter. The daily OpenGL WTF.

This is a severe issue and thus I request an emergency release as soon as I have the patch ready.

Cheers
Martin

Reply via email to