e_plane_renderer: added e_plane_renderer_render_count_get 70/126070/2
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 18 Apr 2017 10:53:14 +0000 (19:53 +0900)
committerchangyeon lee <cyeon.lee@samsung.com>
Thu, 11 May 2017 04:17:01 +0000 (04:17 +0000)
- renderer return current enqueued and dequeued surface count
  when called this function.

Change-Id: Ic29114443fc7e53174107e4307e0ed9586943468

src/bin/e_plane_renderer.c
src/bin/e_plane_renderer.h

index 85abb4516b810c5e5cd125de8d14218849a09f02..e21a107547f17bef4c7efbf9414f7df312732b62 100644 (file)
@@ -2233,3 +2233,35 @@ e_plane_renderer_show_state(E_Plane_Renderer *renderer)
           }
      }
 }
+
+
+EINTERN int
+e_plane_renderer_render_count_get(E_Plane_Renderer *renderer)
+{
+   int dequeue_num = 0;
+   int enqueue_num = 0;
+   int count = 0;
+   tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(renderer, 0);
+
+   if (!renderer->tqueue) return 0;
+
+   tsq_err = tbm_surface_queue_get_trace_surface_num(renderer->tqueue, TBM_SURFACE_QUEUE_TRACE_DEQUEUE, &dequeue_num);
+   if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE)
+     {
+        ERR("fail to tbm_surface_queue_get_trace_surface_num");
+        return 0;
+     }
+
+   tsq_err = tbm_surface_queue_get_trace_surface_num(renderer->tqueue, TBM_SURFACE_QUEUE_TRACE_ENQUEUE, &enqueue_num);
+   if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE)
+     {
+        ERR("fail to tbm_surface_queue_get_trace_surface_num");
+        return 0;
+     }
+
+   count = dequeue_num + enqueue_num;
+
+   return count;
+}
index 8a302c40e4895926d51ae9605a1877e5284744da..41715325e4d19210d21c2382f73b1869fdfa630d 100644 (file)
@@ -92,6 +92,7 @@ EINTERN Eina_Bool                  e_plane_renderer_cursor_surface_refresh(E_Pla
 EINTERN Eina_Bool                  e_plane_renderer_ecore_evas_use(E_Plane_Renderer *renderer);
 EINTERN void                       e_plane_renderer_sent_surface_recevie(E_Plane_Renderer *renderer, tbm_surface_h tsurface);
 EINTERN Eina_Bool                  e_plane_renderer_ec_valid_check(E_Plane_Renderer *renderer, E_Client *ec);
+EINTERN int                        e_plane_renderer_render_count_get(E_Plane_Renderer *renderer);
 
 EINTERN void                       e_plane_renderer_hwc_trace_debug(Eina_Bool onoff);
 EINTERN void                       e_plane_renderer_show_state(E_Plane_Renderer *renderer);