<div dir="ltr"><div><div><div><div><div>Hi all,<br><br></div>During a quick tests of latest Mesa3D versions at different branches 12.x, 13.x, 17.x we have found that deferred context and surface destroy doesn't work properly.<br><br></div>According to docs:<br><a href="https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglDestroySurface.xhtml">https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglDestroySurface.xhtml</a><br><br>Description<br>If the EGL surface is not current to any thread, eglDestroySurface destroys it immediately. Otherwise, surface is destroyed when it becomes not current to any thread. Furthermore, resources associated with a pbuffer surface are not released until all color buffers of that pbuffer bound to a texture object have been released. <br><br></div>Same for context destroy:<br><a href="https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglDestroyContext.xhtml">https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglDestroyContext.xhtml</a><br><br>Description<br>If the EGL rendering context is not current to any thread, eglDestroyContext destroys it immediately. Otherwise, context is destroyed when it becomes not current to any thread.<br><br></div>Should this behavior be handled at EGL common DRI2 level or DRI2 platform driver level or it should be handled by EGL itself? I can see some refcounts implemented for EGL surfaces, buteglMakeCurrent seems don't increment them for surfaces and contexts. <br><br></div>Thanks!<br><br></div>