https://bugs.kde.org/show_bug.cgi?id=406180

--- Comment #34 from Erik Kurzinger <ekurzin...@nvidia.com> ---
Setting the swap interval to 0 *should* resolve the issue, and indeed, on my
system the first time the window switcher is displayed it never hangs. However,
subsequent times it still can. Luca, does this agree with your observations?

The issue, I think, is that QtQuick only calls glXSwapIntervalEXT the first
time its context is made current. See QGLXContext::makeCurrent in
src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp in the
core Qt code. It checks if the surface's swap interval is different than it's
internal m_swapInterval, and only calls the GLX function if so.

The issue is that the swap interval is associated with a particular drawable,
not a context, and QtQuick creates a new drawable each time the switcher is
displayed. However, since the swap interval hasn't changed since the last time
it's context was made current, it skips the glXSwapIntervalEXT call when it
really shouldn't. It should probably be resetting m_swapInterval in
QGLXContext::doneCurrent or something.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to