discomfitor pushed a commit to branch master.

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

commit 514fefe2d46ef6a1fb97ed10a39b0771ddccd962
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Aug 4 16:11:00 2017 -0400

    efl-wl: add handling for commit during canvas render
    
    prevent release of pre-existing buffers during a render cycle
    
    @fix
---
 src/lib/efl_wl/efl_wl.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
index fbb6b11829..111e244442 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -1345,7 +1345,8 @@ comp_surface_commit_state(Comp_Surface *cs, 
Comp_Buffer_State *state)
           {
              //if (cs->subsurface)
                //fprintf(stderr, "BUFFER(%d) COMMIT %d\n", 
wl_resource_get_id(buffer->res), wl_resource_get_id(cs->res));
-             if ((!cs->post_render_queue) && ((!cs->buffer[1]) || 
(!cs->buffer[1]->post_renders)))
+             if ((!cs->c->rendering) && (!cs->post_render_queue) &&
+               ((!cs->buffer[1]) || (!cs->buffer[1]->post_renders)))
                comp_surface_buffer_detach(&cs->buffer[1]);
           }
         else
@@ -3895,6 +3896,8 @@ comp_render_pre(Comp *c, Evas *e EINA_UNUSED, void 
*event_info EINA_UNUSED)
      {
         Comp_Buffer *buffer;
 //if (cs->subsurface) fprintf(stderr, "RENDER PRE\n");
+
+        comp_surface_buffer_detach(&cs->buffer[1]);
         cs->buffer[1] = cs->buffer[0];
         cs->buffer[0] = NULL;
         cs->render_queue = 0;

-- 


Reply via email to