summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-08-03 14:37:51 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-08-03 14:37:51 -0400
commitfd1f322b86bc761893db78b6bbefb95f4af55da8 (patch)
tree83afba2cde8a7857e34f84cb6ad21434dea4ef41
parent6c1114ace11dddcb3519d847090e92817b91236e (diff)
downloadefl-fd1f322b86bc761893db78b6bbefb95f4af55da8.tar.gz
efl-wl: add handling for commit during canvas render
prevent release of pre-existing buffers during a render cycle
-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 4e3b69b532..85710f7144 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -1375,7 +1375,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
@@ -3940,6 +3941,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;