This is going to need a different fix then. At present, RENDER_FLUSH_PRE
triggers after the outbuf flush, and this breaks Wayland rendering.

On Fri, Dec 11, 2015 at 1:16 AM Carsten Haitzler <ras...@rasterman.com>
wrote:

> raster pushed a commit to branch master.
>
>
> http://git.enlightenment.org/core/efl.git/commit/?id=000beb2f17ff17c3ca600586457c0877af39579b
>
> commit 000beb2f17ff17c3ca600586457c0877af39579b
> Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
> Date:   Fri Dec 11 15:10:53 2015 +0900
>
>     Revert "evas: trigger RENDER_FLUSH callbacks during async render"
>
>     This reverts commit cbb447c878ef779230ebf4470b615b8276c50fa2.
>
>     1. this is wrong because evas_render_pipe_wakeup() is being called IN
>     THE RENDER THREAD. it... SENDS a wakeup back to the mainloop with
>
>        evas_async_events_put(data, 0, NULL, evas_render_async_wakeup);
>
>     and you can see that evas_render_async_wakeup() calls
>     evas_render_wakeup() and in evas_render_wakeup() flush pre/post are
>     called, but since the trhead does the flush we cant realyl call
>     before/after, but it retains order... IF there are updates (haveup).
>
>     so calling these callbacks FROM a thread is now leading to apps
>     mysteriously exiting. this is mucho bad. just at random i now have my
>     terminals exiting.
> ---
>  src/lib/evas/canvas/evas_render.c | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/src/lib/evas/canvas/evas_render.c
> b/src/lib/evas/canvas/evas_render.c
> index 249da38..1645ebc 100644
> --- a/src/lib/evas/canvas/evas_render.c
> +++ b/src/lib/evas/canvas/evas_render.c
> @@ -3071,10 +3071,8 @@ evas_render_pipe_wakeup(void *data)
>       }
>     eina_evlog("+render_output_flush", e->evas, 0.0, NULL);
>     eina_spinlock_release(&(e->render.lock));
> -   _cb_always_call(e->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, NULL);
>     e->engine.func->output_flush(e->engine.data.output,
>                                  EVAS_RENDER_MODE_ASYNC_END);
> -   _cb_always_call(e->evas, EVAS_CALLBACK_RENDER_FLUSH_POST, NULL);
>     eina_evlog("-render_output_flush", e->evas, 0.0, NULL);
>     evas_async_events_put(data, 0, NULL, evas_render_async_wakeup);
>  }
>
> --
>
>
>
------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to