[Wayland-bugs] [Bug 99332] call eglSwapBuffers causes app execution block

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jan 9 15:53:40 UTC 2017


https://bugs.freedesktop.org/show_bug.cgi?id=99332

Daniel Stone <daniel at fooishbar.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |NOTOURBUG

--- Comment #1 from Daniel Stone <daniel at fooishbar.org> ---
(In reply to Sergey Stepanov from comment #0)
> if we call eglSwapBuffers twice (or even call glClear in EGL mode) it can
> causes app execution block.
>
> I found 2 independent cases:
> 1. eglSwapBuffers implementation does not request wl_surface.frame
> callback(as Mesa do)

You need to take this up with whoever provides your driver. This is your SoC
vendor, not the upstream Wayland project. We (well, most of us) have never seen
that particular driver, and we are unable to supply fixes for it.

> 2. surface is not mapped in weston
> 
> I believe in both cases EGL driver is blocked on waiting wl_buffer.release
> event.
> I suppose it happens because of the next code 
> 
> in function weston_buffer_reference:
> wl_resource_queue_event(ref->buffer->resource,					WL_BUFFER_RELEASE);
> 
> If there is no other events for the client a message buffer will not be
> flushed. So, client will not receive wl_buffer.release event until other
> event occurred.
> We can implement a workaround by calling display_roundtrip after each
> swapBuffers call, but i believe it is not a proper way.
> 
> I did not check current version (but I took a look at source code,
> implementation is the same) but it is true for 1.6 and 1.9

Yes, the EGL implementation needs to properly ensure that it polls for the
event. The documentation for wl_display_roundtrip_queue() will be useful to
your EGL driver supplier to help figure this out. And also, now that it seems
you have been able to move past libwayland 1.2, your EGL implementation _must_
use a separate event queue on the display, and manage its display queue in
accordance with the suggestions in the documentation.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-bugs/attachments/20170109/4bdbdbfe/attachment-0001.html>


More information about the wayland-bugs mailing list