<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - We need fences support in Wayland compositors"
href="https://bugs.freedesktop.org/show_bug.cgi?id=98766">98766</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>We need fences support in Wayland compositors
</td>
</tr>
<tr>
<th>Product</th>
<td>Wayland
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>weston
</td>
</tr>
<tr>
<th>Assignee</th>
<td>wayland-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>mvicomoya@nvidia.com
</td>
</tr></table>
<p>
<div>
<pre>There are several vendors that asynchronously commit wl_surface state changes
to work around the limitation of wayland compositors using unfinished frames
for composition.
Using unfinished frames causes the compositor to stall waiting for slow clients
rendering to finish, missing frames from faster clients or even slowing them
down if they are synchronized to compositor redraws.
Using EGL_NV_stream_fifo_synchronous on the client side to defer
wl_surface.{attach, damage, commit} until a frame is finished is the way NVIDIA
works around such limitation, but it goes against Wayland atomicity assumptions
of surface updates.
This problem should be fixed on the compositor side. Using fences the
compositor can query when a client buffer is finished and ready for
composition.
There has been some discussion about this in
<a class="bz_bug_link
bz_status_NEW "
title="NEW - EGL client behaviour too undefined"
href="show_bug.cgi?id=98731">https://bugs.freedesktop.org/show_bug.cgi?id=98731</a></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>