derekf pushed a commit to branch master.

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

commit f886a76daeab2b73eee441008e6b78d3f3d4ec02
Author: Derek Foreman <der...@osg.samsung.com>
Date:   Wed Aug 30 12:29:48 2017 -0500

    wayland: Force a display flush when committing surfaces
    
    We had a hack in place to flush the display from an idle enterer instead
    of after a surface commit.  This led to a problem where the idle
    enterer dispatch order was:
    
    renderer for main canvas
    wayland dispatch idle enterer
    renderer for mouse cursor canvas
    
    The surface commit for the mouse cursor was never dispatched, so the mouse
    cursor animation would only update at the rate other events occurred.
    
    By flushing at the appropriate times instead we ensure a proper update.
    
    ref T5850
---
 src/lib/ecore_wl2/ecore_wl2_window.c                | 6 +++++-
 src/modules/evas/engines/wayland_egl/evas_wl_main.c | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c 
b/src/lib/ecore_wl2/ecore_wl2_window.c
index 2ea2bd979d..81d8568f09 100644
--- a/src/lib/ecore_wl2/ecore_wl2_window.c
+++ b/src/lib/ecore_wl2/ecore_wl2_window.c
@@ -1398,7 +1398,11 @@ ecore_wl2_window_commit(Ecore_Wl2_Window *window, 
Eina_Bool flush)
    window->callback = wl_surface_frame(window->surface);
    wl_callback_add_listener(window->callback, &_frame_listener, window);
 
-   if (flush) wl_surface_commit(window->surface);
+   if (flush)
+     {
+        wl_surface_commit(window->surface);
+        ecore_wl2_display_flush(window->display);
+     }
 }
 
 EAPI Eina_Bool
diff --git a/src/modules/evas/engines/wayland_egl/evas_wl_main.c 
b/src/modules/evas/engines/wayland_egl/evas_wl_main.c
index b0249961ca..4f1823ec1f 100644
--- a/src/modules/evas/engines/wayland_egl/evas_wl_main.c
+++ b/src/modules/evas/engines/wayland_egl/evas_wl_main.c
@@ -547,6 +547,7 @@ eng_outbuf_flush(Outbuf *ob, Tilebuf_Rect *surface_damage, 
Tilebuf_Rect *buffer_
 
  end:
    glsym_evas_gl_preload_render_unlock(eng_preload_make_current, ob);
+   ecore_wl2_display_flush(ob->wl2_disp);
 }
 
 Evas_Engine_GL_Context *

-- 


Reply via email to