[Dev] efl in tizen 0914.3 renders a black screen with wayland_egl

cee1 fykcee1 at gmail.com
Mon Oct 5 14:25:10 GMT 2015


Hi all,

When enable wayland_egl backend, I got a black screen with tizen
0914.3(aka milestone), while the 0630.1 works fine.

After some debugging, I located a commit
"https://git.enlightenment.org/core/efl.git/commit/?id=2725a248c993856d70323c3a0bb0d859d7501789"
causing the regression.

"""
https://git.enlightenment.org/core/efl.git/tree/src/modules/evas/engines/software_generic/evas_engine.c?id=2725a248c993856d70323c3a0bb0d859d7501789#n3344

        switch (re->swap_mode)
          {
           case MODE_COPY:
           case MODE_DOUBLE:
           case MODE_TRIPLE:
           case MODE_QUADRUPLE:
             rect = (Tilebuf_Rect *)re->cur_rect;
             *x = rect->x;
             *y = rect->y;
             *w = rect->w;
             *h = rect->h;
             *cx = rect->x;
             *cy = rect->y;
             *cw = rect->w;
             *ch = rect->h;
             re->cur_rect = re->cur_rect->next;
             break;
           ...
          }
        surface = re->outbuf_new_region_for_update(re->ob,
                                                   *x, *y, *w, *h,
                                                   cx, cy, cw, ch);
        if ((!re->cur_rect) || (!surface))
          {
             evas_common_tilebuf_free_render_rects(re->rects);
             re->rects = NULL;
             re->end = 1;

"""

Where:
1) re->cur_rect is NULL, which presumably is set by """re->cur_rect =
re->cur_rect->next;"""
2) surface is **NOT** NULL
3) re->rects is then set to NULL(because re->curl_rect == NULL), which
causes eng_outbuf_flush to skip the invocation of
glsym_eglSwapBuffersWithDamage
(https://git.enlightenment.org/core/efl.git/tree/src/modules/evas/engines/wayland_egl/evas_wl_main.c?id=2725a248c993856d70323c3a0bb0d859d7501789#n463)



-- 
Regards,

- cee1


More information about the Dev mailing list