egl: wl_egl_window is not wl_proxy

It seems that eglCreatePlatformWindowSurfaceEXT is failing (with
EGL_BAD_ALLOC) because it thinks an EGL surface has already been created
for the wl_egl_window. The reason is that the "driver_private" field of
the wl_egl_window is getting clobbered by the function
wl_proxy_set_queue().

Since a wl_egl_window is not a wl_proxy, it shouldn't be passed to
wl_proxy_set_queue(). It just wraps a wl_surface (which is a wl_proxy).
And it looks like the queue for that surface is getting set earlier on
in the function anyway.

See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/621#note_184582
This commit is contained in:
Marc Leeman 2019-07-03 09:07:06 +00:00 committed by Matthew Waters
parent 0b44ac28b7
commit 92137572c3

View file

@ -440,9 +440,6 @@ create_surfaces (GstGLWindowWaylandEGL * window_egl)
window_egl->window.native =
wl_egl_window_create (window_egl->window.surface, width, height);
if (window_egl->window.queue)
wl_proxy_set_queue ((struct wl_proxy *) window_egl->window.native,
window_egl->window.queue);
}
}