correct surface information 98/131898/3 accepted/tizen/unified/20170608.072258 submit/tizen/20170607.062251
authorBoram Park <boram1288.park@samsung.com>
Wed, 31 May 2017 06:23:49 +0000 (15:23 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Tue, 6 Jun 2017 23:02:19 +0000 (23:02 +0000)
Change-Id: I603c2211be4f14e20e7838ed9e2accde253d6dd4

src/tbm_surface_internal.c

index bba792f..baaf7bd 100644 (file)
@@ -802,7 +802,10 @@ tbm_surface_internal_create_with_bos(tbm_surface_info_s *info,
        surf->info.width = info->width;
        surf->info.height = info->height;
        surf->info.format = info->format;
-       surf->info.bpp = info->bpp;
+       if (info->bpp > 0)
+               surf->info.bpp = info->bpp;
+       else
+               surf->info.bpp = tbm_surface_internal_get_bpp(info->format);
        surf->info.num_planes = info->num_planes;
        surf->refcnt = 1;
 
@@ -813,8 +816,13 @@ tbm_surface_internal_create_with_bos(tbm_surface_info_s *info,
 
                if (info->planes[i].size > 0)
                        surf->info.planes[i].size = info->planes[i].size;
-               else
-                       surf->info.planes[i].size += surf->info.planes[i].stride * info->height;
+               else {
+                       uint32_t size = 0, offset = 0, stride = 0;
+                       int32_t bo_idx = 0;
+
+                       _tbm_surface_internal_query_plane_data(surf, i, &size, &offset, &stride, &bo_idx);
+                       surf->info.planes[i].size = size;
+               }
 
                if (num == 1)
                        surf->planes_bo_idx[i] = 0;