Window refreshes are randomly skipped on Windows 11 when SwapBuffers() has just been called (regression from Win 7, 8, and 10)

Gabriele Giuseppini 16 Reputation points
2022-09-07T18:14:58.817+00:00

Wondering if anyone else is experiencing the same issue.

For users: some applications that update the UI - e.g. with an animation or with basic drawing - would stutter on Windows 11, while they were refreshing smoothly in all previous versions of Windows.

For developers: in applications that use both OpenGL in a dedicated window and "traditional" GDI calls in another window - both in the same frame - the GDI window "stutters", causing noticeable faltering in the updates. The same applications works fine in Windows 7, 8, and 10.

After debugging the issue I've isolated the culprit as being the SwapBuffers() call for the "OpenGL window" HDC: when invoked before ::RedrawWindow() is called on the "GDI window" HDC, the latter sometimes fails to refresh. The problem has been confirmed by users on different hardware and - most importantly - with different graphics cards, including integrated and non-integrated cards.

I have C++ code that clearly reproduces the issue, and can provide on-demand the code, the executable, and videos from both Windows 10 and Windows 11.

Windows 11
Windows 11
A Microsoft operating system designed for productivity, creativity, and ease of use.
8,164 questions
{count} votes