<table><tr><td style="">graesslin created this revision.<br />Restricted Application added a project: KWin.<br />Restricted Application added subscribers: kwin, plasma-devel.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D6464" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>The GL_CONTEXT_LOST flag is not reset when calling glGetError. This of<br />
course bites with: "Thus, glGetError should always be called in a loop,<br />
until it returns GL_NO_ERROR, if all error flags are to be reset."<br />
(see <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetError.xhtml" class="remarkup-link" target="_blank" rel="noreferrer">https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetError.xhtml</a>)</p>

<p>As KWin calls checkGLError from init call it can result in a freeze of<br />
KWin. This is a regression reported multiple times since the release of<br />
5.10.3 which enabled GLX_NV_robustness_video_memory_purge extension.</p>

<p>Please note that I am not able to test this change. I do not have an<br />
NVIDIA card and are not hiting the problem. I have no way to simulate<br />
the code. I do not know whether the change will fix the problem, it is<br />
based on what others do. Inspiration for this change is mostly from<br />
mutter: <a href="https://git.gnome.org/browse/mutter/commit/?id=d4d2bf0f6c1737256b921c4f1dedd3a95138cab9" class="remarkup-link" target="_blank" rel="noreferrer">https://git.gnome.org/browse/mutter/commit/?id=d4d2bf0f6c1737256b921c4f1dedd3a95138cab9</a></p>

<p>BUG: 381870<br />
FIXED-IN: 5.10.3.1</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>See above, I can only compile check the change</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R108 KWin</div></div></div><br /><div><strong>BRANCH</strong><div><div>check-context-lost</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D6464" rel="noreferrer">https://phabricator.kde.org/D6464</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>libkwineffects/kwinglutils.cpp</div></div></div><br /><div><strong>To: </strong>graesslin, KWin, Plasma<br /><strong>Cc: </strong>plasma-devel, kwin, ZrenBot, progwolff, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart, lukas<br /></div>