wl_surface::attach(NULL) release previous buffer?

John Cox jc at kynesim.co.uk
Fri Sep 22 14:47:13 UTC 2023


>On 9/14/23 14:24, John Cox wrote:
>> Hi
>> A, hopefully, simple question - should I expect a wl_buffer::release
>> event from the buffer previously committed to a surface after I've
>> attached (and invalidated & committed) a NULL buffer to the surface? it
>> doesn't seem to happen for me (I have WAYLAND_DEBUG=1 logs showing it
>> not happening).
>> If I shouldn't expect a release - when is it safe to reuse/free the
>> buffer storage?
>The compositor may continue using the buffer even if you attach a null 
>buffer to the wl_surface. For example, the compositor may do it to play 
>an animation if the window is unmapped.

You've completely lost me with this example.  Are you suggesting that
the compositor is reusing my buffer for its own purposes?

>It is safe to reuse the buffer when you receive wl_buffer.release event 
>from the compositor.

Yup I got that (and you also have to wait for dmabuf fences if it is
that sort of buffer).

In the case that I was wondering about it was a compositor bug that kept
the buffer locked when it shouldn't have been.



More information about the wayland-devel mailing list