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@lists.freedesktop.org
          Reporter: sergey.stepa...@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.
_______________________________________________
wayland-bugs mailing list
wayland-bugs@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-bugs

Reply via email to