<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>