<div dir="auto"><div dir="auto"><div dir="auto">Dear Pekka,<div dir="auto"><br></div><div dir="auto">Thanks for your idea on this, I inserted a callback in the `surface_commit` function in libweston. From the log I can see that the `surface commit` was blocked on the server side until some other events happen. On the client side it was clear that I committed two buffers then sleeped because of lacking available buffers. I am using libweston and currently I didn't setup any input callbacks. All I did was setting up an interface to set views in background layers then call `wl_display_run()`. I hope to know is there anyways to follow wayland server event queues in libweston?</div><div dir="auto"><br></div><div dir="auto">Thanks very much,</div><div dir="auto">SZ</div></div><br><div class="gmail_quote"><div dir="ltr">Le mer. 14 mars 2018 04 h 49, Pekka Paalanen <<a href="mailto:ppaalanen@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">ppaalanen@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, 13 Mar 2018 14:11:29 +0000<br>
Sichem Zhou <<a href="mailto:sichem.zh@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">sichem.zh@gmail.com</a>> wrote:<br>
<br>
> Dear Matt,<br>
><br>
> I just checked my compiled version, indeed I was using a version without<br>
> this patch. I patched my local weston but it didn't seem that my problem is<br>
> gone. So I guess there could be other problems with my code, but thanks for<br>
> your assistance. Now I can insert the callback in weston to do some<br>
> inspection.<br>
<br>
Hi,<br>
<br>
note that there is no guarantee to get a wl_buffer.release until you<br>
have wl_surface.committed the next wl_buffer. A compositor could send a<br>
release without a new buffer, but that is only possible is the<br>
compositor made a copy of the buffer contents. Compositors try to avoid<br>
such copies.<br>
<br>
It didn't sound like this was your issue, but just reminding.<br>
<br>
It sounds more like the compositor might be blocked unnecessarily<br>
somewhere, and getting input events will let its main event loop<br>
un-block. This shouldn't happen, but there could be bugs.<br>
<br>
<br>
Thanks,<br>
pq<br>
<br>
> Le lun. 12 mars 2018 19 h 22, Matt Hoosier <<a href="mailto:matt.hoosier@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">matt.hoosier@gmail.com</a>> a<br>
> écrit :<br>
><br>
> > Here's the discussion and patch that addressed the issue I was mentioning:<br>
> ><br>
> ><br>
> > <a href="https://lists.freedesktop.org/archives/wayland-devel/2017-September/035191.html" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/archives/wayland-devel/2017-September/035191.html</a><br>
> ><br>
> > On Mon, Mar 12, 2018 at 3:51 PM, Matt Hoosier <<a href="mailto:matt.hoosier@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">matt.hoosier@gmail.com</a>><br>
> > wrote:<br>
> > > Hi,<br>
> > ><br>
> > > Unless you're using an unreleased version of Weston, I think you're<br>
> > > probably running into a bug that we fixed a few months ago in which<br>
> > > wl_buffer::release() events were prone to sit undispatched in the<br>
> > > server's outgoing queue until some other event happened to need<br>
> > > transmitted.<br>
> > ><br>
> > > -Matt<br>
> > ><br>
> > > On Mon, Mar 12, 2018 at 1:23 PM, Sichem Zhou <<a href="mailto:sichem.zh@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">sichem.zh@gmail.com</a>><br>
> > wrote:<br>
> > >> Hi all,<br>
> > >><br>
> > >> Dear wayland devs, I have a question regarding to double `wl_buffer`<br>
> > >> management. I don't seem to have wl_buffer released untill some other<br>
> > events<br>
> > >> triggered (for example, the  inputs). My current environment is under<br>
> > >> `X11-backend` and a libweston based compositor.<br>
> > >><br>
> > >> My pipeline follows: (frame, attach, damage, commit) -> buffer switch -><br>
> > >> wait until one buffer available -> redraw. The `done` event is handled<br>
> > >> differently since it only signals if ready to draw.<br>
> > >><br>
> > >> Through my experiments, I found out at I wouldn't get either of the<br>
> > >> `release` of `frame done` event if I wasn't using the compositor (moving<br>
> > >> cursor or typing). In this case I guess there is something wrong with my<br>
> > >> pipeline but I couldn't figure out which. I wish to know if there is<br>
> > obvious<br>
> > >> mistakes in my pipeline or the problem lies in the compositor.<br>
> > >><br>
> > >>  Very appreciate any answers.<br>
> > >><br>
> > >> SZ<br>
> > >><br>
> > >><br>
> > >><br>
> > >> _______________________________________________<br>
> > >> wayland-devel mailing list<br>
> > >> <a href="mailto:wayland-devel@lists.freedesktop.org" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">wayland-devel@lists.freedesktop.org</a><br>
> > >> <a href="https://lists.freedesktop.org/mailman/listinfo/wayland-devel" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
> > >><br>
> ><br>
<br>
</blockquote></div></div><div class="gmail_extra"><br><div class="gmail_quote">Le 14 mars 2018 04 h 49, "Pekka Paalanen" <<a href="mailto:ppaalanen@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">ppaalanen@gmail.com</a>> a écrit :<br type="attribution"><blockquote class="m_-3318809224591684901m_-7133349436207359859m_7320148577867275175m_-4181010834750027065m_4886472112962460328quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_-3318809224591684901m_-7133349436207359859m_7320148577867275175m_-4181010834750027065m_4886472112962460328quoted-text">On Tue, 13 Mar 2018 14:11:29 +0000<br>
Sichem Zhou <<a href="mailto:sichem.zh@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">sichem.zh@gmail.com</a>> wrote:<br>
<br>
> Dear Matt,<br>
><br>
> I just checked my compiled version, indeed I was using a version without<br>
> this patch. I patched my local weston but it didn't seem that my problem is<br>
> gone. So I guess there could be other problems with my code, but thanks for<br>
> your assistance. Now I can insert the callback in weston to do some<br>
> inspection.<br>
<br></div>
Hi,<br>
<br>
note that there is no guarantee to get a wl_buffer.release until you<br>
have wl_surface.committed the next wl_buffer. A compositor could send a<br>
release without a new buffer, but that is only possible is the<br>
compositor made a copy of the buffer contents. Compositors try to avoid<br>
such copies.<br>
<br>
It didn't sound like this was your issue, but just reminding.<br>
<br>
It sounds more like the compositor might be blocked unnecessarily<br>
somewhere, and getting input events will let its main event loop<br>
un-block. This shouldn't happen, but there could be bugs.<br>
<br>
<br>
Thanks,<br>
pq<div class="m_-3318809224591684901m_-7133349436207359859m_7320148577867275175m_-4181010834750027065m_4886472112962460328elided-text"><br>
<br>
> Le lun. 12 mars 2018 19 h 22, Matt Hoosier <<a href="mailto:matt.hoosier@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">matt.hoosier@gmail.com</a>> a<br>
> écrit :<br>
><br>
> > Here's the discussion and patch that addressed the issue I was mentioning:<br>
> ><br>
> ><br>
> > <a href="https://lists.freedesktop.org/archives/wayland-devel/2017-September/035191.html" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/archives/wayland-devel/2017-September/035191.html</a><br>
> ><br>
> > On Mon, Mar 12, 2018 at 3:51 PM, Matt Hoosier <<a href="mailto:matt.hoosier@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">matt.hoosier@gmail.com</a>><br>
> > wrote:<br>
> > > Hi,<br>
> > ><br>
> > > Unless you're using an unreleased version of Weston, I think you're<br>
> > > probably running into a bug that we fixed a few months ago in which<br>
> > > wl_buffer::release() events were prone to sit undispatched in the<br>
> > > server's outgoing queue until some other event happened to need<br>
> > > transmitted.<br>
> > ><br>
> > > -Matt<br>
> > ><br>
> > > On Mon, Mar 12, 2018 at 1:23 PM, Sichem Zhou <<a href="mailto:sichem.zh@gmail.com" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">sichem.zh@gmail.com</a>><br>
> > wrote:<br>
> > >> Hi all,<br>
> > >><br>
> > >> Dear wayland devs, I have a question regarding to double `wl_buffer`<br>
> > >> management. I don't seem to have wl_buffer released untill some other<br>
> > events<br>
> > >> triggered (for example, the  inputs). My current environment is under<br>
> > >> `X11-backend` and a libweston based compositor.<br>
> > >><br>
> > >> My pipeline follows: (frame, attach, damage, commit) -> buffer switch -><br>
> > >> wait until one buffer available -> redraw. The `done` event is handled<br>
> > >> differently since it only signals if ready to draw.<br>
> > >><br>
> > >> Through my experiments, I found out at I wouldn't get either of the<br>
> > >> `release` of `frame done` event if I wasn't using the compositor (moving<br>
> > >> cursor or typing). In this case I guess there is something wrong with my<br>
> > >> pipeline but I couldn't figure out which. I wish to know if there is<br>
> > obvious<br>
> > >> mistakes in my pipeline or the problem lies in the compositor.<br>
> > >><br>
> > >>  Very appreciate any answers.<br>
> > >><br>
> > >> SZ<br>
> > >><br>
> > >><br>
> > >><br>
> > >> _______________________________________________<br>
> > >> wayland-devel mailing list<br>
> > >> <a href="mailto:wayland-devel@lists.freedesktop.org" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">wayland-devel@lists.freedesktop.org</a><br>
> > >> <a href="https://lists.freedesktop.org/mailman/listinfo/wayland-devel" rel="noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
> > >><br>
> ><br>
<br>
</div></blockquote></div><br></div></div>