discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=54df1d9c6a5e42d72aadc59265fbd64e7f7871b3

commit 54df1d9c6a5e42d72aadc59265fbd64e7f7871b3
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Tue Dec 15 17:14:43 2015 -0500

    ecore-evas wayland: move frame sending to pre-flush callback
    
    it was possible to deadlock rendering if a pre-render occurred but
    the resulting render had no updated regions
    
    @fix
---
 .../ecore_evas/engines/wayland/ecore_evas_wayland_common.c    | 11 +----------
 .../ecore_evas/engines/wayland/ecore_evas_wayland_egl.c       |  3 ---
 .../ecore_evas/engines/wayland/ecore_evas_wayland_shm.c       |  3 ---
 3 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 75ac428..f10f4d0 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -1289,7 +1289,7 @@ static const struct wl_callback_listener _anim_listener =
 };
 
 void
-_ecore_evas_wl_common_render_pre(void *data, Evas *evas EINA_UNUSED, void 
*event EINA_UNUSED)
+_ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, 
void *event EINA_UNUSED)
 {
    Ecore_Evas *ee = data;
    Ecore_Evas_Engine_Wl_Data *wdata;
@@ -1299,15 +1299,6 @@ _ecore_evas_wl_common_render_pre(void *data, Evas *evas 
EINA_UNUSED, void *event
      wl_surface_frame(ecore_wl2_window_surface_get(wdata->win));
    wl_callback_add_listener(wdata->anim_callback, &_anim_listener, ee);
    ecore_evas_manual_render_set(ee, 1);
-}
-
-void
-_ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, 
void *event EINA_UNUSED)
-{
-   Ecore_Evas *ee = data;
-   Ecore_Evas_Engine_Wl_Data *wdata;
-
-   wdata = ee->engine.data;
    if (wdata->win->configure_ack && wdata->win->configure_serial)
      wdata->win->configure_ack(wdata->win->xdg_surface,
                                wdata->win->configure_serial);
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
index 8836630..c6def65 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
@@ -314,9 +314,6 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, 
unsigned int parent,
      evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST, 
                              _ecore_evas_wl_common_render_updates, ee);
 
-   evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
-                            _ecore_evas_wl_common_render_pre, ee);
-
    evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
                            _ecore_evas_wl_common_render_flush_pre, ee);
 
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index c815f79..be092fb 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -312,9 +312,6 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, 
unsigned int parent,
      evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
                             _ecore_evas_wl_common_render_updates, ee);
 
-   evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
-                            _ecore_evas_wl_common_render_pre, ee);
-
    evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
                            _ecore_evas_wl_common_render_flush_pre, ee);
 

-- 


Reply via email to