* client want to enqueue are the same.
*/
if (surface->is_frontbuffer_mode && surface->frontbuffer == tbm_surface) {
- TPL_LOG_B("WL_EGL",
- "[ENQ_SKIP][F] Client already uses frontbuffer(%p)",
- surface->frontbuffer);
-
/* The first buffer to be activated in frontbuffer mode muse be
* committed. Subsequence frames do not need to be committed because
* the buffer is already displayed.
*/
if (wayland_egl_buffer->is_new) {
- __tpl_wayland_egl_surface_commit(surface, tbm_surface,
- num_rects, rects);
- wayland_egl_buffer->is_new = TPL_FALSE;
+ TPL_DEBUG("[FRONTBUFFER RENDERING MODE] tbm_surface(%p) bo(%d)",
+ tbm_surface, tbm_bo_export(wayland_egl_buffer->bo));
} else {
+ TPL_LOG_B("WL_EGL",
+ "[ENQ_SKIP][F] Client already uses frontbuffer(%p)",
+ surface->frontbuffer);
TRACE_ASYNC_END((int)wayland_egl_buffer, "[DEQ]~[ENQ] BO_NAME:%d",
tbm_bo_export(wayland_egl_buffer->bo));
+ return TPL_ERROR_NONE;
}
-
- return TPL_ERROR_NONE;
}
+ wayland_egl_buffer->is_new = TPL_FALSE;
+
if (wayland_egl_surface->vblank_done == TPL_FALSE)
__tpl_wayland_egl_surface_wait_vblank(surface);
* committed. Subsequence frames do not need to be committed because
* the buffer is already displayed.
*/
- if (twe_surface_check_commit_needed(wayland_egl_surface->twe_surface,
- surface->frontbuffer)) {
- twe_surface_commit_without_enqueue(wayland_egl_surface->twe_surface,
- surface->frontbuffer);
+ if (!twe_surface_check_commit_needed(wayland_egl_surface->twe_surface,
+ surface->frontbuffer)) {
+ TRACE_ASYNC_END((int)tbm_surface, "[DEQ]~[ENQ] BO_NAME:%d", bo_name);
+ TPL_OBJECT_UNLOCK(wayland_egl_surface);
+ return TPL_ERROR_NONE;
}
-
- TRACE_ASYNC_END((int)tbm_surface, "[DEQ]~[ENQ] BO_NAME:%d", bo_name);
- TPL_OBJECT_UNLOCK(wayland_egl_surface);
- return TPL_ERROR_NONE;
}
if (sync_fence != -1) {