<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 - EGL client behaviour too undefined"
href="https://bugs.freedesktop.org/show_bug.cgi?id=98731">98731</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>EGL client behaviour too undefined
</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>wayland
</td>
</tr>
<tr>
<th>Assignee</th>
<td>wayland-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>jadahl@gmail.com
</td>
</tr></table>
<p>
<div>
<pre>The behaviour of EGL clients is too undefined. For example when exactly a
client can expect wl_surface.attach+wl_surface.commit is not known, making it
hard to implement a well behaving client correctly. This is especially
problematic in combination with xdg_shell with version >= unstable v6, since it
is required that the first buffer attached to a surface must comply to the
requirements of the initial configure event.
For example, an application that does
surface = wl_compositor_create_surface();
egl_window = wl_egl_window_create(surface, some_width, some_height);
xdg_surface = xdg_shell_get_xdg_surface(surface);
--> on configure
wl_egl_window_resize(egl_window, actual_width, actual_height);
.. draw things ..
eglSwapBuffers()
may work on some EGL implementations, but not on others.
Some uncertainties that needs to be clarified:
1) When can wl_surface.attach be expected to take place
2) When can wl_surface.commit be expected to take place
3) What is the dimension of the wl_buffer used in 1) and 2)
Some requirements that needs to be met in order to guarantee a correct initial
frame (as required by the current xdg_shell version):
a) It must be possible to know when the buffer of the first frame is attached
and committed so that it is possible to set up the associated state (i.e.
windew geometry, input region, opaque region etc)
b) It must be possible to know when buffers of subsequent frames are attached
and commited so that is possible to set up the same set of associated state
(i.e. window geometry and input region when a surface is resized, or opaque
region when the content changes).</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>