summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-08-04 16:11:00 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-08-04 16:14:24 -0400
commite1000b06f6e3a5ac38e105f5ff61f16d585a87f5 (patch)
treeaa85d2a4bbb3b0f051d453c2138d8f31bcff32ec
parentd515001bb71be13e25c5a37482ee47d292cb85ef (diff)
efl-wl: add handling for commit during canvas render
prevent release of pre-existing buffers during a render cycle @fix
-rw-r--r--src/lib/efl_wl/efl_wl.c5
1 files changed, 4 insertions, 1 deletions
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)
1345 { 1345 {
1346 //if (cs->subsurface) 1346 //if (cs->subsurface)
1347 //fprintf(stderr, "BUFFER(%d) COMMIT %d\n", wl_resource_get_id(buffer->res), wl_resource_get_id(cs->res)); 1347 //fprintf(stderr, "BUFFER(%d) COMMIT %d\n", wl_resource_get_id(buffer->res), wl_resource_get_id(cs->res));
1348 if ((!cs->post_render_queue) && ((!cs->buffer[1]) || (!cs->buffer[1]->post_renders))) 1348 if ((!cs->c->rendering) && (!cs->post_render_queue) &&
1349 ((!cs->buffer[1]) || (!cs->buffer[1]->post_renders)))
1349 comp_surface_buffer_detach(&cs->buffer[1]); 1350 comp_surface_buffer_detach(&cs->buffer[1]);
1350 } 1351 }
1351 else 1352 else
@@ -3895,6 +3896,8 @@ comp_render_pre(Comp *c, Evas *e EINA_UNUSED, void *event_info EINA_UNUSED)
3895 { 3896 {
3896 Comp_Buffer *buffer; 3897 Comp_Buffer *buffer;
3897//if (cs->subsurface) fprintf(stderr, "RENDER PRE\n"); 3898//if (cs->subsurface) fprintf(stderr, "RENDER PRE\n");
3899
3900 comp_surface_buffer_detach(&cs->buffer[1]);
3898 cs->buffer[1] = cs->buffer[0]; 3901 cs->buffer[1] = cs->buffer[0];
3899 cs->buffer[0] = NULL; 3902 cs->buffer[0] = NULL;
3900 cs->render_queue = 0; 3903 cs->render_queue = 0;