<div dir="ltr">Hi Daniel,<div><br></div><div>Forgot to mention: this only happens when using the wayland backend, not x11. It's triggered by the next call to eglMakeCurrent (when the remaining window is repainted), so it might not happen immediately, either. I'm using an Intel graphics card and Mesa 12.0.3.</div><div><br></div><div>I actually saw the comment in gl_renderer_destroy and searched for Mesa bugs, but found this email: <a href="https://lists.freedesktop.org/archives/wayland-devel/2013-October/011622.html">https://lists.freedesktop.org/archives/wayland-devel/2013-October/011622.html</a></div><div>"[...] <span style="color:rgb(0,0,0);white-space:pre-wrap">An EGLSurface is current for a </span><span style="color:rgb(0,0,0);white-space:pre-wrap">context from eglMakeCurrent up until eglMakeCurrent is called for the </span>conetxte with another surface or the context is destroyed.  The wl_egl_surface (the native window object) has to be available (can not be destroyed) for the entire time the EGLSurface exists."</div><div>(Though it's from 2013, so maybe things have changed since.)</div><div><br></div><div>There was also a similar fix for the simple-egl client a while ago: <a href="https://lists.freedesktop.org/archives/wayland-devel/2013-April/008718.html">https://lists.freedesktop.org/archives/wayland-devel/2013-April/008718.html</a></div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Thu, Nov 24, 2016 at 3:51 AM, Daniel Stone <span dir="ltr"><<a href="mailto:daniel@fooishbar.org" target="_blank">daniel@fooishbar.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Dima,<br>
<span class="gmail-"><br>
On 24 November 2016 at 02:41, Dima Ryazanov <<a href="mailto:dima@gmail.com">dima@gmail.com</a>> wrote:<br>
> Call eglMakeCurrent before destroying the native EGL window, similar to what<br>
> other sample clients are already doing.<br>
<br>
</span>This doesn't show as an error here, with your suggested reproduction<br>
instructions. From eglDestroySurface:<br>
'If the EGL surface surface is not current to any thread,<br>
eglDestroySurface destroys it immediately. Otherwise, surface is<br>
destroyed when it becomes not current to any thread.'<br>
<br>
Which GL stack are you using? The comment above the no-surface<br>
MakeCurrent in gl_renderer_destroy() is probably pretty telling, that<br>
Mesa once had a bug.<br>
<br>
Regardless of this, I am inclined to apply it to match the others,<br>
even just so we can be sure that the destroy takes effect immediately.<br>
<br>
Cheers,<br>
Daniel<br>
</blockquote></div><br></div></div>