[evasgl] change swap mode when rect size not match tile size 18/143718/2
authorsunghyun kim <scholb.kim@samsung.com>
Fri, 11 Aug 2017 05:16:32 +0000 (14:16 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Mon, 14 Aug 2017 08:48:47 +0000 (08:48 +0000)
Change-Id: I609a0bab36f0781de0048844516405a53a7990c8

src/modules/evas/engines/software_generic/evas_engine.c

index afd1a75..bef959a 100644 (file)
@@ -3639,6 +3639,17 @@ eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, i
 
              if (re->outbuf_swap_mode_get) mode = re->outbuf_swap_mode_get(re->ob);
              re->swap_mode = mode;
+
+             // disable partial rendering when rect's w,h not match tile size
+             rect = (Tilebuf_Rect *)EINA_INLIST_GET(re->rects);
+             if((re->w != rect->w) ||(re->h != rect->h))
+               {
+                  if(rect->w%(re->tb->tile_size.w)||rect->h%(re->tb->tile_size.h))
+                    {
+                       re->swap_mode = MODE_FULL;
+                    }
+               }
+
              if ((re->lost_back) || (re->swap_mode == MODE_FULL) || (re->swap_mode == MODE_AUTO))
                {
                   /* if we lost our backbuffer since the last frame redraw all */