* User can choose this type for window to avoid a hardware composition for
* this window.
*
+ * User has to set this type for the window which has the TDM_COMPOSITION_CLIENT_CANDIDATE
+ * type. (see the TDM_COMPOSITION_CLIENT_CANDIDATE type)
+ *
* The device must not request any composition type changes for windows of
* this type.
*/
TDM_COMPOSITION_CLIENT = 0,
+ /* Set by the HWC after tdm_output_validate().
+ *
+ * If the HWC decided that it doesn't want/can't to continue the composition for
+ * this window through a hardware overlay or other similar way it'll change
+ * a type to the TDM_COMPOSITION_CLIENT_CANDIDATE type.
+ *
+ * This transition can happen only if the window has the TDM_COMPOSITION_DEVICE
+ * type already.
+ *
+ * If an user changed type of a window from the TDM_COMPOSITION_DEVICE type to the
+ * the TDM_COMPOSITION_CLIENT type, the type will be rejected to the
+ * TDM_COMPOSITION_CLIENT_CANDIDATE type.
+ *
+ * The user has to composite this window itself.
+ *
+ * The underlying hardware overlay is owned by this window till a type being
+ * changed to the TDM_COMPOSITION_CLIENT type, but it's not possible to set a
+ * buffer for this window after a type's been changed to the
+ * TDM_COMPOSITION_CLIENT_CANDIDATE type.
+ *
+ * This transitional state is used to get rid of blinking at a transition from
+ * the TDM_COMPOSITION_DEVICE type to the TDM_COMPOSITION_CLIENT type where the hw
+ * has to wait till a buffer, which was on a hw overlay, get composited to the
+ * fb_target and only after this happens unset(or set another window on) this
+ * hw overlay.
+ *
+ * User has to inform the HWC (the HWC got no way to know when it happens) after a buffer,
+ * which was on a hw overlay, get composited to the fb_target by setting a type of this
+ * window to the TDM_COMPOSITION_CLIENT type, it causes a type of this window being changed
+ * to TDM_COMPOSITION_CLIENT.
+ */
+ TDM_COMPOSITION_CLIENT_CANDIDATE = 5,
+
/** Set by the client before tdm_output_validate().
*
* Upon tdm_output_validate(), the device may request a change from this type to