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

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jan 9 15:44:24 UTC 2017


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

            Bug ID: 99332
           Summary: call eglSwapBuffers causes app execution block
           Product: Wayland
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: minor
          Priority: medium
         Component: weston
          Assignee: wayland-bugs at lists.freedesktop.org
          Reporter: sergey.stepanov at lge.com

Hi all,

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

-- 
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/6a91382c/attachment.html>


More information about the wayland-bugs mailing list