<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [regression] weston-simple-egl not running anymore inside qemu"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=86701#c20">Comment # 20</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [regression] weston-simple-egl not running anymore inside qemu"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=86701">bug 86701</a>
              from <span class="vcard"><a class="email" href="mailto:ppaalanen@gmail.com" title="Pekka Paalanen <ppaalanen@gmail.com>"> <span class="fn">Pekka Paalanen</span></a>
</span></b>
        <pre>(In reply to nerdopolis1 from <a href="show_bug.cgi?id=86701#c18">comment #18</a>)
<span class="quote">> Hi. I realized that the hang happens when I hover over an icon on the
> desktop shell, and it tries to show a tooltip

> Output of weston running with WAYLAND_DEBUG=server
> <a href="http://pastebin.com/0aQGBLFH">http://pastebin.com/0aQGBLFH</a></span >

Please don't put pastebin links here, they tend go bad over time. Much better
to attach a file.

<span class="quote">> Only weston-desktop-shell hangs. If I get another client to run before
> weston-desktop-shell hangs, that client stays running.</span >

*sigh* I wish we had a way to differentiate between clients in
WAYLAND_DEBUG=server output... (there are several different clients interleaved
in the trace, but I expected that)

Ok, I see what happens.

The tooltip is a sub-surface (due to migration to xdg-shell). Sub-surfaces
start in synchronized mode, and the mode is never changed here. That means the
frame callback cannot trigger, until the parent wl_surface is committed.
Toytoolkit or weston-desktop-shell does not commit the parent before EGL starts
waiting for the sub-surface's frame callback, which causes the hang.

The immediate thing to investigate is whether EGL even gives the app a chance
to commit the parent wl_surface (which also is a EGLSurface when you use
cairo-egl). If the answer is yes, there is nothing wrong in Mesa, and the bug
is in toytoolkit.

Whether the answer is yes or no, this issue needs to be filed as a separate bug
against Weston's toytoolkit.

As fixing the toytoolkit is very low priority (and I would assume hardware
accelerated GL to be broken the same way), the solution for end users is: do
not configure Weston using --with-cairo=gl nor --with-cairo=glesv2; use the
default --with-cairo=image.

A quick'n'dirty fix would be to set the tooltip sub-surface to desync mode when
it's created. That should avoid the hang, but it may be arguably a wrong
solution. One must be able to use the synchronized mode even with EGL surfaces,
so making sure it can work is essential.

When filing a new bug, please copy my explanation and attach again the same
protocol dump.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>