tbm_surface_h tsurface = NULL;
EINA_SAFETY_ON_NULL_RETURN_VAL(hwc_window, EINA_FALSE);
+#if 1
+ if (hwc_window->uncompleted_transition != E_HWC_WINDOW_TRANSITION_NONE_TO_NONE)
+ {
+ ELOGF("HWC-WINS", " !!! ehw:%p ts:%10p is under TRANSITION. ------- {%25s}, state:%s, zpos:%d, deleted:%s.",
+ hwc_window->ec ? hwc_window->ec->pixmap : NULL, hwc_window->ec,
+ hwc_window, tsurface, hwc_window->ec ? hwc_window->ec->icccm.title : "UNKNOWN",
+ e_hwc_window_state_string_get(hwc_window->state),
+ hwc_window->zpos, hwc_window->is_deleted ? "yes" : "no");
+ return EINA_FALSE;
+ }
+#endif
/* set the buffer to be null */
if (hwc_window->state == E_HWC_WINDOW_STATE_NONE)
{
tsurface = _e_hwc_window_target_window_surface_acquire((E_Hwc_Window_Target *)hwc_window);
if (!tsurface)
{
- ELOGF("HWC-WINS", " the surface of target is null.", NULL, NULL);
+ ELOGF("HWC-WINS", " the surface of target is null.(E_HWC_WINDOW_STATE_DEVICE)", NULL, NULL);
return EINA_FALSE;
}
if (tsurface == hwc_window->tsurface)
{
- ELOGF("HWC-WINS", " aquired buffer is same.(ts:%p)", NULL, NULL, hwc_window->tsurface);
+ ELOGF("HWC-WINS", " aquired buffer is same.(ts:%p)(E_HWC_WINDOW_STATE_DEVICE)", NULL, NULL, hwc_window->tsurface);
return EINA_FALSE;
}
}
else
{
+ if (hwc_window->tsurface == NULL)
+ {
+ ELOGF("HWC-WINS", " the surface of target is null.(E_HWC_WINDOW_STATE_NONE)", NULL, NULL);
+ return EINA_FALSE;
+ }
+
if (hwc_window->tsurface)
_e_hwc_window_target_window_surface_release((E_Hwc_Window_Target *)hwc_window, hwc_window->tsurface);
hwc_window->uncompleted_transition = E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT;
accept_changes = EINA_FALSE;
- ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT is set.(Accept_Changes)", NULL, NULL);
+ ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT is set.(Accept_Changes)",
+ hwc_window->ec ? ec->pixmap : NULL, hwc_window->ec);
}
/* update the state with the changed compsition */
{
e_hwc_window_state_set(hwc_window, E_HWC_WINDOW_STATE_NONE);
ret = EINA_FALSE;
-#if DBG_EVALUATE
- ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_DEVICE_TO_NONE is set.(Transition_Check)", NULL, NULL);
-#endif
+ ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_DEVICE_TO_NONE is set.(Transition_Check)",
+ hwc_window->ec ? ec->pixmap : NULL, hwc_window->ec);
}
}
else
{
e_hwc_window_state_set(hwc_window, E_HWC_WINDOW_STATE_CLIENT);
ret = EINA_FALSE;
-#if DBG_EVALUATE
- ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT is set.(Transition_Check)", NULL, NULL);
-#endif
+ ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT is set.(Transition_Check)",
+ hwc_window->ec ? ec->pixmap : NULL, hwc_window->ec);
}
}
else
{
e_hwc_window_state_set(hwc_window, E_HWC_WINDOW_STATE_DEVICE);
ret = EINA_FALSE;
-#if DBG_EVALUATE
- ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_CLIENT_TO_DEVICE is set.(Transition_Check)", NULL, NULL);
-#endif
+ ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_CLIENT_TO_DEVICE is set.(Transition_Check)",
+ hwc_window->ec ? ec->pixmap : NULL, hwc_window->ec);
}
}
else
hwc_window->transition = E_HWC_WINDOW_TRANSITION_NONE_TO_DEVICE;
if (e_hwc_window_state_get(hwc_window) == E_HWC_WINDOW_STATE_CURSOR)
hwc_window->transition = E_HWC_WINDOW_TRANSITION_NONE_TO_CURSOR;
+
+ hwc_window->uncompleted_transition =E_HWC_WINDOW_TRANSITION_NONE_TO_NONE;
break;
case E_HWC_WINDOW_STATE_CLIENT:
if (e_hwc_window_state_get(hwc_window) == E_HWC_WINDOW_STATE_NONE)
hwc_window->transition = E_HWC_WINDOW_TRANSITION_CLIENT_TO_DEVICE;
if (e_hwc_window_state_get(hwc_window) == E_HWC_WINDOW_STATE_CURSOR)
hwc_window->transition = E_HWC_WINDOW_TRANSITION_CLIENT_TO_CURSOR;
+
+ hwc_window->uncompleted_transition =E_HWC_WINDOW_TRANSITION_NONE_TO_NONE;
break;
case E_HWC_WINDOW_STATE_DEVICE:
if (e_hwc_window_state_get(hwc_window) == E_HWC_WINDOW_STATE_NONE)
{
hwc_window->uncompleted_transition = E_HWC_WINDOW_TRANSITION_DEVICE_TO_NONE;
#if DBG_EVALUATE
- ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_DEVICE_TO_NONE is set.(Transition_Update)", NULL, NULL);
+ ELOGF("HWC-WINS", " E_HWC_WINDOW_TRANSITION_DEVICE_TO_NONE is set.(Transition_Update)",
+ hwc_window->ec ? ec->pixmap : NULL, hwc_window->ec);
#endif
}
#endif
if (e_hwc_window_target_enabled(output_hwc->target_hwc_window))
{
hwc_window->uncompleted_transition = E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT;
-#if DBG_EVALUATE
- ELOGF("HWC-WINS", " E_HWC_WINDOW_STATE_CLIENT is set.(Transition_Update)", NULL, NULL);
-#endif
+
+ ELOGF("HWC-WINS", " E_HWC_WINDOW_STATE_CLIENT is set.(Transition_Update)",
+ hwc_window->ec ? ec->pixmap : NULL, hwc_window->ec);
+ continue;
}
+
+ hwc_window->uncompleted_transition =E_HWC_WINDOW_TRANSITION_NONE_TO_NONE;
}
if (e_hwc_window_state_get(hwc_window) == E_HWC_WINDOW_STATE_DEVICE)
hwc_window->transition = E_HWC_WINDOW_TRANSITION_DEVICE_TO_DEVICE;
+
+ hwc_window->uncompleted_transition =E_HWC_WINDOW_TRANSITION_NONE_TO_NONE;
break;
case E_HWC_WINDOW_STATE_CURSOR:
+
+ hwc_window->uncompleted_transition =E_HWC_WINDOW_TRANSITION_NONE_TO_NONE;
break;
case E_HWC_WINDOW_STATE_VIDEO:
+
+ hwc_window->uncompleted_transition =E_HWC_WINDOW_TRANSITION_NONE_TO_NONE;
break;
case E_HWC_WINDOW_STATE_DEVICE_CANDIDATE:
+
+ hwc_window->uncompleted_transition =E_HWC_WINDOW_TRANSITION_NONE_TO_NONE;
break;
default:
+
+ hwc_window->uncompleted_transition =E_HWC_WINDOW_TRANSITION_NONE_TO_NONE;
+
ERR("Unknown Prev_State: failed to update the states.");
return;
}
Eina_Bool can_validate;
uint32_t num_changes;
- /* update the buffers and the infos */
- _e_output_hwc_windows_buffers_update(output_hwc);
-
/* evaluate the transition */
can_validate = _e_output_hwc_windows_uncomplete_transition_check(output_hwc);
if (can_validate)
ELOGF("HWC-WINS", "====================== Output HWC Apply (evaluate) ======================", NULL, NULL);
+ if (output_hwc->wait_commit)
+ {
+ ELOGF("HWC-WINS", "!!!!!!!! Didn't get Output Commit Handler Yet !!!!!!!!", NULL, NULL);
+ return EINA_TRUE;
+ }
+
if (e_comp_canvas_norender_get() > 0)
{
ELOGF("HWC-WINS", " Block Display... NoRender get.", NULL, NULL);
else
{
e_hwc_window_state_set(target_window, E_HWC_WINDOW_STATE_NONE);
- e_hwc_window_target_buffer_fetch(output_hwc->target_hwc_window);
+// e_hwc_window_target_buffer_fetch(output_hwc->target_hwc_window);
}
if (output_hwc->hwc_mode != hwc_mode)
}
target_window = (E_Hwc_Window *)output_hwc->target_hwc_window;
- if (e_hwc_window_target_enabled(output_hwc->target_hwc_window))
+// if (e_hwc_window_target_enabled(output_hwc->target_hwc_window))
{
if (!e_hwc_window_target_buffer_fetch(output_hwc->target_hwc_window)) // try aquire
{
}
}
+ /* update the buffers and the infos */
+ _e_output_hwc_windows_buffers_update(output_hwc);
+
if (output_hwc->update_changes)
//if (output_hwc->need_commit || output_hwc->update_changes)
{