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