plane->unset_counter = e_plane_renderer_render_count_get(fb_target->renderer);
- if (visible || (!visible && !renderer->rendered)) plane->unset_counter += 1;
+ if (visible || (!visible && !renderer->rendered))
+ {
+ plane->unset_counter += 1;
+ e_plane_renderer_surface_queue_sync_count_set(fb_target->renderer, 1);
+ }
+ else
+ e_plane_renderer_surface_queue_sync_count_set(fb_target->renderer, 0);
}
}
EINA_SAFETY_ON_NULL_RETURN(renderer);
plane->set_counter = e_plane_renderer_render_count_get(fb_target->renderer) + 1;
+ e_plane_renderer_surface_queue_sync_count_set(fb_target->renderer, 1);
}
if (plane_trace_debug)
}
EINTERN void
+e_plane_renderer_surface_queue_sync_count_set(E_Plane_Renderer *renderer, unsigned int sync_count)
+{
+ tbm_surface_queue_error_e tsq_err = TBM_SURFACE_QUEUE_ERROR_NONE;
+
+ EINA_SAFETY_ON_NULL_RETURN(renderer);
+ EINA_SAFETY_ON_NULL_RETURN(renderer->tqueue);
+
+ tsq_err = tbm_surface_queue_set_sync_count(renderer->tqueue, sync_count);
+ if (tsq_err != TBM_SURFACE_QUEUE_ERROR_NONE)
+ ERR("fail to tbm_surface_queue_set_sync_count");
+
+ if (renderer_trace_debug)
+ ELOGF("E_PLANE_RENDERER", "Set Renderer(%p) sync_count(%d)",
+ NULL, NULL, renderer, sync_count);
+}
+
+EINTERN void
e_plane_renderer_ecore_evas_force_render(E_Plane_Renderer *renderer)
{
int w, h;
EINTERN Eina_Bool e_plane_renderer_surface_queue_can_dequeue(E_Plane_Renderer *renderer);
EINTERN tbm_surface_h e_plane_renderer_surface_queue_dequeue(E_Plane_Renderer *renderer);
EINTERN Eina_Bool e_plane_renderer_surface_queue_clear(E_Plane_Renderer *renderer);
+EINTERN void e_plane_renderer_surface_queue_sync_count_set(E_Plane_Renderer *renderer, unsigned int sync_count);
EINTERN void e_plane_renderer_surface_send(E_Plane_Renderer *renderer, E_Client *ec, tbm_surface_h tsurface);
EINTERN Eina_Bool e_plane_renderer_ec_set(E_Plane_Renderer *renderer, E_Client *ec);
EINTERN Eina_Bool e_plane_renderer_cursor_ec_set(E_Plane_Renderer *renderer, E_Client *ec);