Activity log for bug #1211076

Date Who What changed Old value New value Message
2013-08-11 21:34:33 Axel Davy bug added bug
2013-08-12 06:07:24 Axel Davy description In native-state-wayland.cpp, In NativeStateWayland::flip, you call wl_display_dispatch. In the wayland documentation, it says this function dispatch the event queue and block if there is no event. With the current Mesa egl implementation eglSwapInterval(0) doesn't work, and everything is as if it was eglSwapInterval(1): When commiting the buffer, egl put a listener to know when the frame is drawn (when the frame is drawn a event is sent). I was testing an experimentation implementation of eglSwapInterval(0), and glmark2 was blocked until I press keyboard or other things (ie send events). This is because eglSwapBuffers doesn't put any listener on the frame in this case. Commiting a buffer is not considered an event but a request, that is why wl_display_dispatch is not adapted. Instead what you want is wl_display_roundtrip, that will process the pending requests and process the commit of the buffer in egl. In native-state-wayland.cpp, In NativeStateWayland::flip, you call wl_display_dispatch. In the wayland documentation, it says this function dispatches the event queue and block if there is no event. With the current Mesa egl implementation eglSwapInterval(0) doesn't work, and everything is as if it was eglSwapInterval(1): When commiting the buffer, egl put a listener to know when the frame is drawn (when the frame is drawn an event is sent). I was testing an experimental implementation of eglSwapInterval(0), and glmark2 was blocked until I press keyboard or other things (ie send events). This is because eglSwapBuffers doesn't put any listener on the frame in this case, and then there is no pending event. Commiting a buffer is not considered an event but a request, that is why wl_display_dispatch is not adapted. Instead what you want is wl_display_roundtrip, that will process the pending requests (and the events) and then process the commit of the buffer in egl.
2013-08-12 17:48:02 Axel Davy description In native-state-wayland.cpp, In NativeStateWayland::flip, you call wl_display_dispatch. In the wayland documentation, it says this function dispatches the event queue and block if there is no event. With the current Mesa egl implementation eglSwapInterval(0) doesn't work, and everything is as if it was eglSwapInterval(1): When commiting the buffer, egl put a listener to know when the frame is drawn (when the frame is drawn an event is sent). I was testing an experimental implementation of eglSwapInterval(0), and glmark2 was blocked until I press keyboard or other things (ie send events). This is because eglSwapBuffers doesn't put any listener on the frame in this case, and then there is no pending event. Commiting a buffer is not considered an event but a request, that is why wl_display_dispatch is not adapted. Instead what you want is wl_display_roundtrip, that will process the pending requests (and the events) and then process the commit of the buffer in egl. In native-state-wayland.cpp, In NativeStateWayland::flip, you call wl_display_dispatch. In the wayland documentation, it says this function dispatches the event queue and block if there is no event. With the current Mesa egl implementation eglSwapInterval(0) doesn't work, and everything is as if it was eglSwapInterval(1): When commiting the buffer, egl put a listener to know when the frame is drawn (when the frame is drawn an event is sent). I was testing an experimental implementation of eglSwapInterval(0), and glmark2 was blocked until I press keyboard or other things (ie send events). This is because eglSwapBuffers doesn't put any listener on the frame in this case, and then there is no pending event. Commiting a buffer is not considered an event but a request, that is why wl_display_dispatch is not adapted. Instead what you want is wl_display_roundtrip, that will process the pending requests (and the events) and then process the commit of the buffer in egl. EDIT: krh told me that wl_display_flush would be better than wl_display_roundtrip. I've not tested, but it might be better to use it.
2013-08-28 17:30:29 Launchpad Janitor branch linked lp:~kruk87/glmark2/glmark2-wayland-wl-display-roundtrip
2013-08-28 17:44:09 Launchpad Janitor branch linked lp:~kruk87/glmark2/glmark2-wayland-wl-display-roundtrip
2013-09-04 17:33:38 Launchpad Janitor branch linked lp:glmark2
2013-09-04 17:38:53 Alexandros Frantzis glmark2: status New Fix Committed
2013-09-04 17:39:24 Alexandros Frantzis glmark2: assignee Rafal Mielniczuk (kruk87)