E_API Eina_Bool
e_comp_object_render_update_lock(Evas_Object *obj)
{
+ E_Comp_Wl_Buffer *buffer;
+ struct wayland_tbm_client_queue *cqueue;
+
API_ENTRY EINA_FALSE;
if (cw->render_update_lock.lock == 0)
{
_e_comp_object_hook_call(E_COMP_OBJECT_HOOK_RENDER_UPDATE_LOCK_SET, cw->ec);
- e_comp_wl_buffer_reference(&cw->render_update_lock.buffer_ref,
- e_pixmap_resource_get(cw->ec->pixmap));
+
+ buffer = e_pixmap_resource_get(cw->ec->pixmap);
+ if ((buffer) && (buffer->resource))
+ {
+ cqueue = e_comp_wl_tbm_client_queue_get(cw->ec);
+ if (cqueue)
+ wayland_tbm_server_client_queue_flush(cqueue);
+ }
+
+ e_comp_wl_buffer_reference(&cw->render_update_lock.buffer_ref, buffer);
e_comp_object_render_update_del(obj);
+
ELOGF("COMP", "Render update lock enabled", cw->ec);
}