On Mon, 5 Oct 2015 13:52:35 -0400 Christopher Michael <[email protected]> said:
i THINK you intended this: https://git.enlightenment.org/core/efl.git/commit/?id=f05686c051424e53a28cab064601676d94efbe78 i THINK your issue is that the buffer age CHANGED as we render (eg jumps from 2 to 3 to 4 to 3 etc.). and thus evas was dropping back to full re-draw at times. cee1 was right in this case that with partial swap extension available AND when we switch to full, OR when we hit the end of the update list, then we end up not swapping at all. see above. i think that would need a backport to tizen (as tizen's efl is now almost 3 releases behind). cee1 - can you try that backport and let us know if it fixes things? > What version of Mesa is being used for this ?? I ask because there is a > an issue where Mesa could be rendering just black squares > > dh > > On 10/05/2015 10:25 AM, cee1 wrote: > > 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) > > > > > > > > > ------------------------------------------------------------------------------ > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [email protected] ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
