Skip to content

Handle invalid and destroyed wl_egl_windows

Daniel Stone requested to merge daniels/mesa:wl-egl-window-destroy into main

We unconditionally require a wl_egl_window to be passed as the native window type, and do not permit a default window. The spec requires us to return EGL_BAD_NATIVE_WINDOW when doing this, rather than crashing.

Further, if an EGLSurface has already been created for an existing native window, we are required to return EGL_BAD_ALLOC.

It is entirely valid for an EGLSurface to outlive the native_window it was created from, provided that SwapBuffers and MakeCurrent return EGL_BAD_NATIVE_WINDOW. We don't have any facility to error on MakeCurrent, so just make sure we can bundle on safely through rendering for now, then return EGL_BAD_NATIVE_WINDOW from SwapBuffers.

Merge request reports