I was wrong, my patch does not fix that.
The root of the problem is the same as in case of freeze while 2D
hardware page swapping. If we execute SwapBuffers without any delay
between calls, OpenGL driver should wait until hardware completes
previous frame. Driver is executed in ring0, so when it waits it
freezes all the system It’s better to wait in user code rather
than in driver code. That’s why I wrote the patch for the same
behavior in 2D.> How does this diff fix a freeze in GL_Swapbuffers?
See ya,
-Sam Lantinga, Software Engineer, Blizzard Entertainment