How to release the weston_buffer after weston_view is destroyed.

Sichem Zhou sichem.zh at gmail.com
Mon Jul 30 00:49:24 UTC 2018


I actually found the reason, in the function `weston_output_repaint`, the
frame_callbacks
only send the done events for surface which has view on the compositor's
view_list,
but this poses a dilemma, since I cannot either destroy or unmap the view
before the
output repainted.

Sichem

On Sat, Jul 28, 2018 at 8:15 PM, Sichem Zhou <sichem.zh at gmail.com> wrote:

> Dear Weston devs:
>
> Sorry for the bothering in when weston-5.0 is approaching, but I am stuck
> in the project for three days I need some one's help very much.
>
> I have a widget implementation of shell widgets that destroys the
> weston_view
> when pressed Esc. The widget is implemented in wayland EGL. Here is the
> view_destroy code.
>
> void
> twshell_close_ui_surface(struct weston_surface *wd_surface)
> {
>         struct weston_view *view, *next;
>         wd_surface->committed = NULL;
>         wd_surface->committed_private = NULL;
>         wl_list_for_each_safe(view, next, &wd_surface->views,
> surface_link) {
>                 weston_view_destroy(view);
>         }
> }
>
> The weston_view is destroyed but the the buffer in the last commit was not
> released and the done event was not sent to the widget. When I triggered
> the event to show widget again, the client was stuck in EGLSwapbuffer. I
> found out about this by using WAYLAND_DEBUG env variable, I hope to the
> way to release the buffer after umapping the weston view. Thanks very much.
>
> Regards,
> Sichem
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20180729/580d5e9a/attachment.html>


More information about the wayland-devel mailing list