|Summary:||glClear can hang when the window being rendered is concurrently closed|
|Product:||Mesa||Reporter:||Steven Stewart-Gallus <sstewartgallus00>|
|Status:||NEW ---||QA Contact:|
|i915 platform:||i915 features:|
A very hacky test case
Description Steven Stewart-Gallus 2014-10-31 18:11:07 UTC
Created attachment 108740 [details] Callstack
Comment 1 Steven Stewart-Gallus 2014-10-31 18:11:56 UTC
Created attachment 108741 [details] glxinfo output
Comment 2 Steven Stewart-Gallus 2014-10-31 18:17:01 UTC
I suspect the problem can occur on machines other than my Intel machine but I can't confirm. The problem occurs when one closes a window while it is being rendered to with glClear. The xcb_wait_for_reply function which is deep in the callstack should return with a BadDrawable error probably. How I triggered the problem was that I built and ran my program at https://gitorious.org/linted/linted/source/1bc8c6e12d65be3736c409612d7ce03561a51030: which is a federation of processes and has a seperate process for drawing to the window than the one that created it and killed the window creating process while the drawer process was using glClear. Strangely, while my gui process which listens for user input failed with an error upon the window being destroyed the drawer process got stuck in glClear.
Comment 3 Steven Stewart-Gallus 2014-10-31 19:32:08 UTC
Created attachment 108743 [details] A very hacky test case One can use this test case and kill the child to reproduce the bug.
Comment 4 Steven Stewart-Gallus 2015-07-24 20:55:43 UTC
A similar problem can happen where eglSwapBuffer returns EGL_FAILURE but then sets the result of eglGetError to EGL_SUCCESS when the window is concurrently closed.