Modify decision for window reset by checking tpl_surface_validate 66/186166/2 accepted/tizen_5.0_unified accepted/tizen_5.5_unified_mobile_hotfix tizen_5.0 tizen_5.5_mobile_hotfix accepted/tizen/5.0/unified/20181102.012242 accepted/tizen/5.5/unified/20191031.014531 accepted/tizen/5.5/unified/mobile/hotfix/20201027.081758 accepted/tizen/unified/20180827.160650 submit/tizen/20180809.082641 submit/tizen/20180827.075509 submit/tizen_5.0/20181101.000001 submit/tizen_5.5/20191031.000001 submit/tizen_5.5_mobile_hotfix/20201026.185101 tizen_5.5.m2_release
authorMikhail Labiuk <m.labiuk@samsung.com>
Tue, 7 Aug 2018 17:04:51 +0000 (20:04 +0300)
committerMikhail Labiuk <m.labiuk@samsung.com>
Tue, 7 Aug 2018 18:10:04 +0000 (21:10 +0300)
Call tpl_surface_validate before dequeue to check if it needs to be reset.

Change-Id: I346ca23f4d85c7f8e3f174ac79a9bdf83cf7652e
Signed-off-by: Mikhail Labiuk <m.labiuk@samsung.com>
EGL/tizen/yagl_tizen_window.c

index fe2ac3949145a2777517960a777514ef1627db00..9e65770745d7521889bf770382ce0c303a909ad1 100644 (file)
@@ -52,6 +52,7 @@ static int yagl_tizen_window_get_buffer(struct yagl_native_drawable *drawable,
     tbm_bo bo;
     tbm_surface_h tbm_surface;
     int i;
+    tpl_bool_t invalid_surface;
 
     YAGL_LOG_FUNC_SET(yagl_tizen_window_get_buffer);
 
@@ -64,6 +65,8 @@ static int yagl_tizen_window_get_buffer(struct yagl_native_drawable *drawable,
         return 0;
     }
 
+    invalid_surface = tpl_surface_validate(window->surface) == TPL_FALSE;
+
     tbm_surface = tpl_surface_dequeue_buffer(window->surface);
     if (tbm_surface == NULL) {
         YAGL_LOG_ERROR("can't get buffer for %p", window->surface);
@@ -74,7 +77,7 @@ static int yagl_tizen_window_get_buffer(struct yagl_native_drawable *drawable,
     width = tbm_surface_get_width(tbm_surface);
     height = tbm_surface_get_height(tbm_surface);
 
-    if ((window->width != width) || (window->height != height)) {
+    if (invalid_surface || (window->width != width) || (window->height != height)) {
         for (i = 0; i < YAGL_TIZEN_MAX_COLOR_BUF; i++) {
             if (window->color_buffers[i].locked && window->back != &window->color_buffers[i]) {
                 /*